Inverse von url_for in Flask suchen

8

Ich benutze Flask und Flask-RESTful zum Erstellen einer REST-API. Innerhalb dieser API enthalten einige meiner Ressourcen URL-Beziehungen zu anderen Ressourcen.

Beim Ausführen von POST-Anfragen an diese Ressourcen stelle ich fest, dass ich die umgekehrte Funktion von Flasks url_for () benötige, um die eingehende URL zu analysieren.

Beispielsweise kann ein POST zu https://www.example.com/buildings das folgende json enthalten:

%Vor%

Ich möchte die ID aus owner und tenant mithilfe der folgenden Route analysieren:

%Vor%

Gibt es eine bequeme Möglichkeit, dies innerhalb von Flask oder Werkzueg zu tun oder soll ich die URL selbst analysieren? Es wäre schön, die bereits definierte Route wiederverwenden zu können ...

Ich habe diesen Beitrag gefunden, tut es aber scheint nicht zu beschreiben, wie man es außerhalb einer Anfrage macht.

    
Dan 02.10.2013, 03:10
quelle

2 Antworten

3

Ich verwende die Funktion route_from unten:

%Vor%

Ich schrieb dies, indem ich mir die Implementierung von url_for ansah und sie umkehrte.

Das Argument url kann eine vollständige URL oder nur der Pfadinformationsabschnitt sein. Der Rückgabewert ist ein Tupel mit dem Endpunktnamen und einem dict mit den Argumenten.

Disclaimer: Ich habe es nicht ausgiebig getestet. Ich plante, es schließlich als Pull-Anforderung einzureichen, aber ich bin nie dazu gekommen, es vollständig zu testen und einige Komponententests zu schreiben. Wenn es nicht für Sie funktioniert, lassen Sie es mich wissen!

    
Miguel 02.10.2013, 19:28
quelle
9

Die einfachste Möglichkeit, einen Testanforderungskontext zu erstellen (danke Leon Young ):

%Vor%

Aber alle Sinne unter der Haube der Schaffung von Anfrage Kontext:

%Vor%

Wenn kein Protokoll und Host für die Ursachenüberprüfung vorhanden ist, können Sie eine spezielle Abgleichsmethode erstellen:

%Vor%

Und benutze es ohne Protokoll und Host:

%Vor%     
tbicr 02.10.2013 08:46
quelle

Tags und Links