db.create_all() 报错上下文?flask_sqlalchemy创建数据库找不到上下文?

问题报错:

RuntimeError: Working outside of application context.

This typically means that you attempted to use functionality that needed
the current application. To solve this, set up an application context
with app.app_context(). See the documentation for more information.

长这个样子:

使用create.all()创建表
本来可以正常生成一个db文件的,但是现在出现这个报错
查了之后是flask_sqlalchemy版本太高导致

from *** import db
db.create.all()

这种写法在flask_sqlalchemy2.5.1时可以使用
解决办法:
1.卸载flask_sqlalchemy或者直接删除文件夹
重新安装低版本

pip install flask_sqlalchemy==2.5.1 

要是就想使用现在的版本(3.1.1)
可以这样写

with app.app_context():
    db.create_all()

因为从Flask-SQLAlchemy3.0开始,所有对db.engine (和db.session)的访问都需要一个活动的Flask应用程序上下文。db.create_all使用db.engine,因此它需要一个应用程序上下文。
更多细节请参考一下网址
https://cloud.tencent.com/developer/ask/sof/107343701

posted @ 2024-05-02 18:29  Excel2016  阅读(2)  评论(0编辑  收藏  举报