Flask 已弃用 before_first_request 如何更新

Car*_*los 20 python flask

我正在学习简单应用程序的网络开发,并且我创建了一个使用before_first_request装饰器的应用程序。根据新的发行说明,before_first_request 已被弃用,并将从 Flask 2.3 中删除:

自 2.2 版起已弃用:将在 Flask 2.3 中删除。相反,在创建应用程序时运行设置代码。

我不明白如何更新代码以适应 Flask 2.3,并且仍然在第一次请求时运行函数而不使用 before_first_request。有好心人能给我举个例子吗?

Enk*_*nku 28

我不知道这是否得到解答,但对于寻找答案的人来说:

@app.before_first_request使用这样的应用程序实例代替装饰函数:即

# In place of something like this
@app.before_first_request
def create_tables():
    db.create_all()
    ...

# push context manually to app
with app.app_context():
    db.create_all()
Run Code Online (Sandbox Code Playgroud)

  • ^ 已修复。这是因为我的应用程序以 Debug=true 运行,您必须将其设置为 false,这样它就不会运行两次。 (2认同)