Flask SQLAlchemy 3不再接受
我正在学习一个使用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")
线路db.create_all(app=app)
给我这个错误:
SQLAlchemy.create_all() got an unexpected keyword argument 'app'
create_all
等方法的app
参数。相反,它总是需要一个活动的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
不需要create_database
函数。SQLAlchemy不会覆盖现有的文件,唯一不会创建数据库的时间是它引发错误。