我有一个简单的烧瓶应用程序,我想使用@app.before_request,但不知何故它不起作用!我敢肯定我没有正确地考虑这一点!显然它会被要求使用类似的东西:
return redirect(url_for('index'))
但我需要它被要求:
return render_template('index.html')
有人可以帮忙吗?
如果您提供一些代码,可能会更好地理解您的问题,但是如果我理解正确,您想在请求之前呈现模板吗?
before_request
用于在请求之前调用某些函数或执行某些操作。所以基本上它是为了准备你的应用程序来处理即将到来的请求。示例:初始化数据库连接并将其放入g
对象中以供以后访问。
before_request 用法的示例(例如初始化 DB)是:
@app.before_request
def before_request():
g.db = connect_db()
如果你@app.before_request
这样使用它,它就是装饰器。在Flask 文档中可以找到更多内容
但另一件事是为什么你要render_template
在请求之前?我认为你应该在视图中呈现模板,而不是在这个地方。您让请求到达您的应用程序、您的视图,然后在那里呈现模板。