如何调用@ app.before_request

时间:2013-01-07 06:27:37

标签: python redirect flask jinja2

我有一个简单的烧瓶应用程序,我想使用@ app.before_request,但不知何故它不起作用!我确信我没有正确思考这个问题! 显然它会被要求使用类似的东西:

return redirect(url_for('index'))

但我需要它:

return render_template('index.html')

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:7)

如果您愿意提供一些代码,那么理解您的问题会更好,但如果我理解正确,您希望在请求之前立即呈现模板吗?

before_request用于在请求之前调用某个函数或执行某些操作。所以基本上它是准备你的应用程序来处理来的请求。示例:初始化数据库连接并将其放在g对象中以供以后访问。

before_request使用示例(例如初始化DB)是:

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

如果您将其用作@app.before_request,那么它就是装饰者。在Flask docs

中可以找到更多内容

但另一件事是你在请求之前想要render_template的原因吗?我认为你应该在不在这个地方的视图中渲染模板。您让请求到达您的应用,您的视图,然后在那里呈现模板。