我有一个简单的烧瓶应用程序,我想使用@ app.before_request,但不知何故它不起作用!我确信我没有正确思考这个问题! 显然它会被要求使用类似的东西:
return redirect(url_for('index'))
但我需要它:
return render_template('index.html')
任何人都可以帮忙吗?
答案 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
的原因吗?我认为你应该在不在这个地方的视图中渲染模板。您让请求到达您的应用,您的视图,然后在那里呈现模板。