flask_sqlalchemy错误:附加参数应命名为<dialectname>_<argument>,获得“自动加载”

问题描述 投票:0回答:1

我正在尝试创建一个Python Web应用程序来连接到现有的sqlite数据库。这是我的代码

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.ext.declarative import declarative_base


app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///history.db"
db = SQLAlchemy(app)
app.app_context().push()
db.reflect()

History = db.Table(
         "history", 
         db.Model.metadata,
         autoload=True,
         autoload_with=db.engine
    )

print(db.Table("history", db.Model.metadata).columns.items())

但是此代码会生成以下错误:

TypeError: Additional arguments should be named <dialectname>_<argument>, got 'autoload'

我可以找到使用

sqlalchemy
加载现有数据库模式的文档,但没有找到使用
flask_sqlalchemy

加载数据库模式的文档

如何使用

flask_sqlalchemy
将我的 sqlite 数据库加载到 Flask 应用程序中?

flask-sqlalchemy
1个回答
0
投票

您不需要包含参数

autoload

SQLAlchemy 2.0 开始,应使用
autoload_with
参数而不是
autoload
。 (参见

您的代码将如下所示:

History = db.Table(
     "history", 
     db.Model.metadata,
     autoload_with=db.engine
)
© www.soinside.com 2019 - 2024. All rights reserved.