无法通过模型查询在其他模块中重用sqlalchemy模型,而只能使用原始sql

时间:2019-05-30 21:35:33

标签: flask-sqlalchemy

我已经设置了rest flask应用程序,并且在youtube tut之后,我设置了一个管理页面,以使用SQLAlchemy ModelView查看数据库表,

db.init_app(app)
admin=Admin(app)
admin.add_view(ModelView(CBotResp, db.session)) 

该模型是在另一个文件dbmodels.py中设置的,因此在主文件中,我导入了db和我的模型CBotResp。很好,我可以查看和编辑表格。

当在另一个模块controller.py中我想从该表中读取数据时,就会出现问题。我导入数据库和模型,然后执行:

 result=db.session.query(CBotResp).all()

我得到的不是数据,而是对象列表:

[<CBotResp 1>, <CBotResp 2>, <CBotResp 3>, <CBotResp 4>, <CBotResp 5>]

恰好是类型

<class 'inmyfiles.dbmodels.CBotResp'

所以这些对象恰好是5,与我数据库中的当前记录相同。所以我这样做:

s = db.session
    res = s.execute('SELECT * FROM CBotResp').fetchall()

在这里,我终于看到一个包含我的数据的漂亮清单。这里会发生什么?是否可以以sqlalchemy标准方式重用模型? (请注意,我是Flask和SqA的新手,所以我迷失了有关在Flask和SqA中使用SqA的四种方式的文档章节

0 个答案:

没有答案