如果我不清楚,我很抱歉,英語不是我的母語。 隨時告訴我,如果我犯了太多的錯誤:)如何使用字符串變量作爲表名進行sqlalchemy查詢?
我是一個新手在使用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對象?
感謝您回覆:),但我真的不知道該模塊使用了「the_module」,以獲得正確類型的對象。 – cleve21
@ cleve21請更新答案。 – ichbinblau