2013-01-07 5 views
5

Ich habe eine einfache Flasche app und ich möchte @ app.before_request verwenden, aber irgendwie funktioniert es nicht! Ich bin mir sicher, dass ich nicht richtig darüber nachdenke!wie Sie @ app.before_request anrufen

return redirect(url_for('index')) 

, aber ich brauche es für aufgerufen werden:

return render_template('index.html') 

kann jemand helfen offenbar wird es auf mit so etwas wie genannt werden?

Antwort

6

Wenn Sie etwas Code geben würden, ist es vielleicht besser, Ihre Frage zu verstehen, aber wenn ich es richtig verstehe, wollen Sie die Vorlage direkt vor der Anfrage rendern?

before_request wird verwendet, um eine Funktion aufzurufen oder eine Aktion vor der Anforderung auszuführen. Im Grunde ist es für die Vorbereitung Ihrer App, um mit der Anfrage umzugehen, die kommt. Beispiel: Datenbankverbindung initialisieren und in Objekt g für späteren Zugriff einfügen.

Beispiel before_request Nutzung (wie initialisieren DB zum Beispiel) ist:

@app.before_request 
def before_request(): 
    g.db = connect_db() 

Wenn Sie es als @app.before_request verwenden, so ist es Dekorateur. Etwas mehr könnte in Flask docs

gefunden werden Aber eine andere Sache ist, warum Sie wollen render_template direkt vor Anforderung? Ich denke, dass man Vorlagen in den Ansichten nicht an dieser Stelle rendern sollte. Sie lassen die Anfrage Ihre App, Ihre Ansicht erreichen und dann Vorlage dort rendern.

+0

Hallo Ignas, ich möchte eigentlich die Vorlage nach der Anfrage rendern! Ich wollte mit dem 'return render_template()' die '@ app.before_request' als' return redirect() 'triger machen! Ich verstehe das jetzt (mit Umleitung), frage mich aber immer noch, ob das noch machbar ist! – Amin

Verwandte Themen