2016-07-12 5 views
-1

ich die Flasche Tutorial mit gerade begonnen404 Fehler in Flask Tutorial

The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. 

Ich habe mich gefragt, was hier falsch ist, funktioniert das Tutorial nicht sag irgendetwas direkt über diesen Fehler.

+0

Auf welche URL greifen Sie zu? Es müsste natürlich eine Route übereinstimmen, die in Ihrer Anwendung definiert wurde. –

+0

naja um ehrlich zu sein, ich habe keine Ahnung mehr als das, ich habe das in Python-Interpreter ausgeführt: $ export FLASK_APP = hello.py $ flask run * Running on http://127.0.0.1:5000/ – bhjghjh

+0

Ok Ich nehme an, dass Sie im Browser auf 127.0.0.1:5000 zugreifen. Dies ruft die Route "/" auf, die in Ihrer Anwendung nicht definiert ist. Sie haben nur "/ user/" –

Antwort

0

Sie müssen Ihre virtuelle Umgebung aktivieren.

source venv/bin/activate 

AKTUALISIERT
Versuchen Sie, diese Schale auf dem Python:

>>> from flask import Flask, url_for 
>>> app = Flask(__name__) 
>>> @app.route('/') 
... def index(): pass 
... 
>>> @app.route('/user/<username>') 
... def profile(username): pass 
... 
>>> with app.test_request_context(): 
... print url_for('index') 
... print url_for('profile', username='John Doe') 
... 
/
/user/John%20Doe 

Ihre url <username> das Argument fehlt.

+0

Ich bin schon in der virtuellen Umgebung. Mein Code funktioniert gut, bis ich @ app.route ('/') anrufe, der Serverfehler tritt auf, wenn ich @ app.route ('/ something_else') anrufe – bhjghjh

+0

@bhjghjh fügen Sie mehr Code zur Frage von Ihren Routen hinzu, der plus ist die URL, die zu dem Fehler führt? – roy

0

Wie @MattHealy darauf hingewiesen, haben Sie nur eine Route, /user/<username>. <username> ist Teil einer "dynamischen URL". Es wird direkt im Tutorial erklärt: http://flask.pocoo.org/docs/0.11/quickstart/#variable-rules.

Das bedeutet, dass Teil der URL in Ihre Ansichtsfunktion als Argument übergeben wird. Dann können Sie innerhalb Ihrer View-Funktion wie jede andere Zeichenfolge in Python verwenden. So müssen Sie eine Anfrage an etwas wie senden: http://localhost:5000/user/yourusername

+0

Was passiert, wenn die richtige URL verwendet wird, aber kein Wert für in der URL. dh: http: // localhost: 5000/Benutzer/IhrBenutzername dh gültig http: // localhost: 5000/Benutzer/ gibt 404 Fehler zurück. Ich habe versucht, wenn Benutzername == None: blah tun anderes: die normalen Sachen tun würden tun, wenn Benutzername Nicht-Null-Wert auch ohne eine Duplikat-Methode zu schaffen args versucht wurden. dh def show_user_profile(): return ‚Benutzername„ beide dieser gescheitert erforderlich – aspiringGuru

+0

davon sowohl fehlgeschlagen, weil die Route nicht über diese Kombination nicht decken @ app.route.. ('/ user /') def hallo_user_noname(): do bla. – aspiringGuru