5

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

return redirect(url_for('index'))

但我需要它被要求:

return render_template('index.html')

有人可以帮忙吗?

4

1 回答 1

8

如果您提供一些代码,可能会更好地理解您的问题,但是如果我理解正确,您想在请求之前呈现模板吗?

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

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

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

如果你@app.before_request这样使用它,它就是装饰器。在Flask 文档中可以找到更多内容

但另一件事是为什么你要render_template在请求之前?我认为你应该在视图中呈现模板,而不是在这个地方。您让请求到达您的应用程序、您的视图,然后在那里呈现模板。

于 2013-01-07T08:47:10.843 回答