Flask_SQLAlchemy无法像SQLAlchemy那样反映数据库 - python

我正在尝试使用python-Flask将Foreigner Database连接到Flask_SQLALchemy应用

我到处都看过,包括FLASK_SQLALCHEMY official doc
过去4天里,我一直在Internet上到处寻找FLASK_SQLALCHEMY中没有ORM库的任何教程,但运气不佳

我一直在查看SQLAlchemy Reflecting doc,但是我对下一步的决定感到困惑

这是我的烧瓶代码:

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 =选择test1.id,test1.name
来自test1
LIMIT:param_1

尝试#2:

t = db.session.query([test1])

输出:

sqlalchemy.exc.InvalidRequestError:预期的SQL表达式,列或映射的实体-得到了[[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)]'

我以为它已经映射了..since autoLoad = TrueBase = automap_base()Base.metadata.reflect(engine)

尝试#3:

t = metadata.tables['test1']

输出:

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

我不理解他们的metadata已经定义为metadata = db.MetaData()

我找不到旧的或新的Flask_SQLAlchemy的任何东西,但是我可以看到SQLAlchemy的某些资源对Flask_SQLAlchemy库不起作用,有人可以帮忙吗?

参考方案

不要使用Flask_SQLAlchemy并使用常规的SQLAlchemy

flask sqlalchemy-根据数据库中的列动态生成数据模型 - python

有没有一种方法可以根据Flask SQLAlchemy的数据库表中的列动态生成数据库模型?我有一个应用程序来显示数据库表中的数据,但是列名有时会更改并破坏我的应用程序。我希望有一种方法可以根据数据库中的实际列名动态​​生成数据模型。我目前明确声明所有列,如下所示。class MyDbModel(db.Model): __tablename__ = '…

SQLalchemy数据库列应采用哪种模型来包含数据数组? - python

因此,我正在尝试建立一个数据库,该数据库的行将经常修改。例如,每小时,我想向数据库的特定部分添加一个数字。因此,如果将self.checkmarks输入等于3的数据库,最好的方法是用增加的数字更新数据库的此部分以使self.checkmarks现在等于3, 2?我尝试将列建立为db.Array,但出现属性错误: AttributeError:“ SQLAlc…

Flask-RESTful-返回自定义响应格式 - python

我已经按照以下Flask-RESTful文档定义了自定义响应格式。app = Flask(__name__) api = restful.Api(app) @api.representation('application/octet-stream') def binary(data, code, headers=None): resp =…

带后台线程的烧瓶应用程序 - python

我正在创建一个flask应用程序,对于一个请求,我需要运行一些长时间运行的作业,而无需在UI上等待。我将创建一个线程并将消息发送到UI。该线程将计算并更新数据库。但是,UI在提交后会看到一条消息。下面是我的实现,但是它正在运行线程,然后将输出发送到我不喜欢的UI。如何在后台运行此线程?@app.route('/someJob') def …

Flask模板中的全局变量 - python

可能不是准确的标题,因为我是flask / python的新手。我正在开发一种内部工具,供不同团队使用。每个团队都有不同的部署阶段,例如alpha,beta|test,prod,并且它们还具有多个区域,例如NA,EU,AP等。现在,当我使用redirect_template时,我将发送stage和region作为变量,然后在模板中使用它们。但是,对每个red…