【发布时间】:2022-03-09 03:55:25
【问题描述】:
如果我不清楚,我提前道歉,英语不是我的母语。 如果我犯了太多错误,请随时告诉我:)
我是使用 flask_sqlalchemy 的新手,在互联网上花费数小时寻找答案后感到沮丧。
我想要的是做一个这样的查询:
ModelName.query.filter_by(name='something').all()
但我不想使用 ModelName 来做类似的事情:
model_list = ['Model1', 'Model2', 'Model3']
for model in model_list:
some_var = model.query.filter_by(name='something').all()
# do some stuff with the variable
错误是:
'str' object has no attribute 'query'
在尝试将 db.session.add() 与字符串变量一起使用时,我当然会遇到同样的问题。
我知道查询需要某种 _BoundDeclarativeMeta 对象而不是字符串,但是如何从列表中获取该对象以将其传递给 for 循环?
我尝试使用 'db.metadata.tables[my_variable]' 但我得到一个 Table 对象而不是 _BoundDeclarativeMeta 对象,它的工作方式不一样。
我设法使用
进行查询db.session.query(db.metadata.tables[my_variable])
而不是
my_variable.query
但我不能将该方法用于“db.session.add()”(或者有可能吗?)
有没有办法将字符串变量“转换”为正确类型的 sqlalchemy 对象?
【问题讨论】:
标签: python-3.x flask-sqlalchemy