Flasche – wie man Parameter von einer JSON GET Anfrage erhält

Ich habe eine Client-Seite, die die folgende GET-Anfrage ausgibt:

"GET /tasks/5fe7eabd-842e-40d2-849e-409655e0891d?{%22task%22:%22hello%22,%22url%22:%22/tasks/5fe7eabd-842e-40d2-849e-409655e0891d%22}&_=1411772296171 HTTP/1.1" 200 -

Tun

 task = request.args print task 

Zeigt es zu sein

ImmutableMultiDict([('{"task":"hello","url":"/tasks/5fe7eabd-842e-40d2-849e-409655e0891d"}', u''), ('_', u'1411772296171')])

Um die "Aufgabe" Wert zu bekommen, wenn ich:

  request.args.getlist('task') 

Ich bekomme statt hello . Irgendwelche Ideen, wie man graben hallo von diesem?

2 Solutions collect form web for “Flasche – wie man Parameter von einer JSON GET Anfrage erhält”

Ignoriere request.args hier; Sie haben hier keinen formcodierten Abfrageparameter.

Verwenden request.query_string stattdessen request.query_string , Aufteilung des Cache-Unterbrechers ( &_=<random number> ), Decodierung der URL-Zitierung und Einspeisung des Ergebnisses an json.loads() :

 from urllib import unquote from flask import json data = json.loads(unquote(request.query_string.partition('&')[0])) task = data.get('task') 

Demo:

 >>> request.query_string '{%22task%22:%22hello%22,%22url%22:%22/tasks/5fe7eabd-842e-40d2-849e-409655e0891d%22}&_=1411772296171' >>> from urllib import unquote >>> from flask import json >>> unquote(request.query_string.partition('&')[0]) '{"task":"hello","url":"/tasks/5fe7eabd-842e-40d2-849e-409655e0891d"}' >>> json.loads(unquote(request.query_string.partition('&')[0])) {u'url': u'/tasks/5fe7eabd-842e-40d2-849e-409655e0891d', u'task': u'hello'} 

Mit dem Anforderungsobjekt kannst du request.args.get('key', 'default') , um den gewünschten Parameter zu erhalten.

 request.args.get('task', None) 
  • Mehrere Instanzen des gleichen Formularfeldes
  • Flasche findet keine Routen in importierten Modulen
  • Zugriff auf den Flask-Server von meiner Webseite
  • Senden von Daten an die Server-Flasche html
  • (Flasche + Socket.IO) Ergebnis der Emit Callback ist die Antwort von meinem REST Endpunkt
  • Flasche lange Routinen
  • Anzeigen von Freunden Namen von Flask Many-to-many sqlalchemy
  • Geheimer Schlüssel nicht in Flaschen-Sitzung gesetzt
  • Flask Beanstalk Einsatzfehler
  • Erstellen und laden Sie eine CSV-Datei
  • Holen Sie sich eine Variable aus der URL in einer Flasche Route
  • Python ist die beste Programmiersprache der Welt.