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% 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.
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 .
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: