Tat*_*a - 20 python flask flask-sqlalchemy
我正在遵循使用 Flask-SQLAlchemy 创建 Flask 应用程序的教程。但是,在创建数据库时它开始引发错误。如何创建数据库?
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///project.db"
db.init_app(app)
from . import models
create_database(app)
return app
def create_database(app):
if not path.exists("website/project.db"):
db.create_all(app=app)
print("created database")
Run Code Online (Sandbox Code Playgroud)
该行db.create_all(app=app)给了我这个错误:
SQLAlchemy.create_all() got an unexpected keyword argument 'app'
Run Code Online (Sandbox Code Playgroud)
dav*_*ism 45
Flask-SQLAlchemy 3 不再接受app诸如 之类的方法的参数create_all。相反,它始终需要一个活动的 Flask 应用程序上下文。
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///project.db"
db.init_app(app)
from . import models
with app.app_context():
db.create_all()
return app
Run Code Online (Sandbox Code Playgroud)
不需要该create_database功能。SQLAlchemy 不会覆盖现有文件,并且唯一不会创建数据库的情况是它引发错误。
| 归档时间: |
|
| 查看次数: |
16610 次 |
| 最近记录: |