Flask test_client entfernt Abfragezeichenfolgenparameter

8

Ich benutze Flask um ein paar sehr einfache Dienste zu erstellen. Von außen testen (mit HTTPie) Parameter durch Querystring gelangen zum Service.

Aber wenn ich sowas verwende.

%Vor%

Ich kann sehen, dass der richtige URI erstellt wurde:

%Vor%

wenn ich in den Dienst einbreche:

%Vor%

ist eigentlich leer.

self.client wird erstellt, indem app.test_client() für meine konfigurierte Flask-Anwendung aufgerufen wird.

Jeder hat eine Idee, warum etwas nach ? weggeworfen wird oder wie es umgangen wird, während immer noch test_client ?

verwendet wird     
Flaker 20.01.2015, 20:48
quelle

2 Antworten

11

Ich habe gerade einen Workaround gefunden.

Machen

%Vor%

hinein:

%Vor%

Das funktioniert, scheint aber etwas unintuitiv zu sein, und das Debuggen dort ist eine Stelle, an der die angegebene Abfragezeichenfolge im URI weggeworfen wird ....

Aber trotzdem funktioniert das für den Moment.

    
Flaker 20.01.2015 22:37
quelle
0

Ich weiß, dass dies ein alter Post ist, aber ich bin auch darauf gestoßen. Es gibt ein offenes Problem in diesem github-Repository . Es scheint, dass dies ein beabsichtigtes Verhalten ist. Aus einer Antwort im Thema thread:

mitsuhiko kommentierte am 24. Juli 2013
Das ist momentan beabsichtigtes Verhalten. Der erste Parameter für den Testclient sollte eine relative URL sein. Wenn dies nicht der Fall ist, werden die Parameter entfernt, da sie so behandelt werden, als wäre sie mit der zweiten URL verknüpft. Das funktioniert:

%Vor%

Eine Möglichkeit, Ihre absolute URL in eine relative URL zu konvertieren und die Abfragezeichenfolge beizubehalten, ist die Verwendung von urlparse:

%Vor%     
Troy 27.08.2016 08:32
quelle

Tags und Links