db.create_all() 報錯上下文?flask_sqlalchemy建立資料庫找不到上下文?

Excel2016發表於2024-05-02

問題報錯:

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.x.x)
可以這樣寫

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

相關文章