gpt4 book ai didi

python - Flask_SQLAlchemy 不能像 SQLAlchemy 一样反射(reflect)数据库

转载 作者:行者123 更新时间:2023-12-03 16:55:47 26 4
gpt4 key购买 nike

我正在尝试将外国人数据库连接到 python-Flask应用程序使用 Flask_SQLALchemy
我到处找,包括FLASK_SQLALCHEMY official doc
在过去的 4 天里,我一直在互联网上到处寻找具有 FLASK_SQLALCHEMY 功能的教程。 ORM 中的图书馆没有运气

我一直在看SQLAlchemy Reflecting doc但我对决定下一步做什么感到困惑

这是我的 flask 代码:

Base = automap_base()
xDB = 'postgres://****'
engine = db.create_engine(xDB)
metadata = db.MetaData()
Session = db.sessionmaker(bind=engine)
session = db.scoped_session(engine)
Base.metadata.reflect(engine)

y = [db.Table(table,metadata,autoload=True,autoload_with=engine) for
table in engine.table_names()]

我尝试根据我在许多来源中阅读的内容以许多不同的方式进行查询,这些来源都没有使用 Flask_SQLAlchemy

尝试#1:
t = db.select('test1').limit(10)
engine.execute(t).fetchall()

输出:

t = SELECT test1.id, test1.name FROM test1 LIMIT :param_1



尝试#2:
t = db.session.query([test1])

输出:

sqlalchemy.exc.InvalidRequestError: SQL expression, column, or mapped entity expected - got '[Table('test1', MetaData(bind=None), Column('id', INTEGER(), table=, nullable=False, server_default=DefaultClause(, for_update=False)), Column('name', VARCHAR(), table=, nullable=False), schema=None)]'



我以为它已经映射了..因为 autoLoad = True , Base = automap_base()Base.metadata.reflect(engine)
尝试#3:
t = metadata.tables['test1']

输出:

KeyError: Table('test1', MetaData(bind=None), Column('id', INTEGER(), table=, nullable=False, server_default=DefaultClause(, for_update=False)), Column('name', VARCHAR(), table=, nullable=False), schema=None)



我不明白他们的 metadata已定义为 metadata = db.MetaData()
我找不到旧的或新的 Flask_SQLAlchemy 的任何东西,但我可以看到一些不适用于 Flask_SQLAlchemy 的 SQLAlchemy 资源图书馆,有人可以帮忙吗?

最佳答案

不要使用 Flask_SQLAlchemy并使用常规 SQLAlchemy

关于python - Flask_SQLAlchemy 不能像 SQLAlchemy 一样反射(reflect)数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56066285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com