Wenn der Benutzer auf diese URL zugreift, die in meiner Flask-App ausgeführt wird, möchte ich, dass der Webdienst die nach dem Fragezeichen angegebenen Parameter verarbeiten kann:
http://10.1.1.1:5000/login?username=alex&password=pw1
#I just want to be able to manipulate the parameters
@app.route('/login', methods=['GET', 'POST'])
def login():
username = request.form['username']
print(username)
password = request.form['password']
print(password)
python
web-services
flask
url-parameters
Alex Stone
quelle
quelle
Antworten:
Verwenden Sie
request.args
diese Option, um den analysierten Inhalt der Abfragezeichenfolge abzurufen:quelle
app.route('/username=<username>&password=<password>')
? Auf diese Weise schreiben Sie die Zeilen request.args.get überhaupt nicht.?
am Anfang der Parameter ein haben, also möchten Sieapp.route('/?username=<username>&password=<password>')
, aber Flask liest alles nach dem Fragezeichen inrequest.args
und interpretiert die Variablen von der Route nicht. Wenn Sie mithilfe eines HTML-Formulars zu Ihrer Beispielroute gelangen möchten, benötigen Sie eine Reihe von zusätzlichem JavaScript, damit dies funktioniert. Schließlich sind Routenvariablen obligatorisch undrequest.args
können optional sein.Die URL - Parameter sind in
request.args
, die eine ImmutableMultiDict , der eine hatget
Methode, mit optionaler Parameter für Standardwert (default
) und Typ (type
) - die eine aufrufbare daß wandelt der Eingangswert in das gewünschte Format ist. ( Weitere Informationen finden Sie in der Dokumentation der Methode .)Beispiele mit dem obigen Code:
quelle
filter
ist ein reserviertes Wort, sollte nicht verwendet werden;)Sie können auch Klammern <> für die URL der Ansichtsdefinition verwenden. Diese Eingabe wird in die Argumente Ihrer Ansichtsfunktion eingegeben
quelle
Wenn Sie ein einzelnes Argument in der URL übergeben haben, können Sie dies wie folgt tun
Falls Sie mehrere Parameter haben:
Was Sie versucht haben, funktioniert bei POST-Anforderungen, bei denen Parameter als Formularparameter übergeben werden und nicht in der URL angezeigt werden. Wenn Sie tatsächlich eine Anmelde-API entwickeln, ist es ratsam, die POST-Anforderung anstelle von GET zu verwenden und die Daten dem Benutzer zur Verfügung zu stellen.
Im Falle einer Nachanfrage würde dies wie folgt funktionieren:
HTML-Snippet:
Route:
quelle
URL:
Code:
(Bearbeiten: Leerzeichen in Formatzeichenfolge entfernt)
quelle
Es ist wirklich einfach. Lassen Sie mich diesen Prozess in zwei einfache Schritte unterteilen.
In der HTML-Vorlage deklarieren Sie das Namensschild für Benutzername und Passwort als
Ändern Sie dann Ihren Code wie folgt:
quelle
Verwenden Sie
request.args.get(param)
zum Beispiel:Hier ist der Link zum Code, auf den verwiesen wird.
quelle