flask No application found. Either work inside a view function or push an application context
前提flask 使用 flask_sqlalchemy 操作数据库,在视图中使用正常,在视图外使用报错RuntimeError: No application found . Either work inside a view function or push an application context·,即在内部调用函数操作数据库时报错分析sqlalchemy的实例在执行时(数据库增删改查)找
·
前提
flask 使用 flask_sqlalchemy 操作数据库,在视图中使用正常,在视图外使用报错
RuntimeError: No application found . Either work inside a view function or push an application context
·,即在内部调用函数操作数据库时报错
分析
sqlalchemy的实例在执行时(数据库增删改查)找不到上下文
它不知道flask初始化时候,app对象,db对象是谁,也就拿不到连接数据库需要的config,就报错了
SQLAlchemy的构造函数为
解决办法
db = SQLAlchemy(), db.init_app(app)只是初始化db,还需要把app赋值给db
错误
app = Flask(__name__)
db = SQLAlchemy()
db.init_app(app)
正确
app = Flask(__name__)
db = SQLAlchemy()
db.init_app(app)
db.app = app
更多推荐
已为社区贡献3条内容
所有评论(0)