Wo stelle ich meinen Blueprint vor der Anfrage?

7

Ich habe also das Routing vor der Anfrage für mein Benutzermodul. Aber jetzt möchte ich auch von anderen Bauplänen auf g.users zugreifen. Ich fand den einzigen Weg, es zu tun, ist, den Code unten zu jedem einzelnen Entwurf zu kopieren.

Ich habe versucht, es in meine app.py für @ app.before_request einzufügen, aber dann haben Sie Fehler, weil Sie Sitzung, g, Benutzer importieren müssen, und dann erhalten Sie _requestglobal Fehler an anderen Orten.

%Vor%

Was ist der beste Platz dafür?

Ich bekomme eine Menge:

%Vor%     
Dexter 01.12.2012, 08:18
quelle

4 Antworten

3

Ich denke, Sie tun es gut, indem Sie versuchen, Benutzer in before_request einzuleiten, das Problem ist, dass g object nichts vor der Anfrage hat, also müssen Sie anders damit umgehen. Holen Sie den Benutzer am wahrscheinlichsten aus Cookies in before_request und fügen Sie ihn später zur Sitzung hinzu, von dort vielleicht zu g . Ich denke, es lohnt sich, Flask-Login anzuschauen oder zu benutzen. Oder einfach den Code lesen und vielleicht gibt es dir ein paar Ideen.

    
Ignas Butėnas 01.12.2012, 09:34
quelle
13

Ein bisschen spät hier, aber:
Folgendes mache ich:
Verwenden Sie die Blueprint-Variable, um die Vorher-Anforderung festzulegen

%Vor%     
Johnston 27.08.2013 12:20
quelle
8

Buleprint.before_request wird vor jeder Anfrage innerhalb des Blueprints aufgerufen. Wenn Sie es vor allen Blaupausen aufrufen möchten, verwenden Sie bitte before_app_request .

    
imwilsonxu 20.04.2013 14:18
quelle
1

Ich bin sogar noch später hier, aber wenn man Johnstons Antwort erhöht, könnte man auch den gleichen before_request Dekorator verwenden, zum Beispiel:

%Vor%     
Charles David 13.04.2017 23:57
quelle

Tags und Links