0
當我使用query.get或query.all等查詢方法時,我想知道sqlalchemy模型實例是否填充了數據庫內容。sqlalchemy實例人口
這是惰性加載這些方法調用,或者當我迭代查詢結果時,有效的數據庫查詢和實例填充完成嗎?
當我使用query.get或query.all等查詢方法時,我想知道sqlalchemy模型實例是否填充了數據庫內容。sqlalchemy實例人口
這是惰性加載這些方法調用,或者當我迭代查詢結果時,有效的數據庫查詢和實例填充完成嗎?
sqlalclemy
具有查詢執行人:first()
,get()
,all()
,......所以,當你調用查詢對象的這些方法從數據庫中獲取數據。在其中一個方法調用之後,您將獲得數據。循環時,它會迭代已獲取的數據。
假設你有User
類:
query = session.query(User) #returns query object
query = query.filter(name=='John') #specified query criteria
user = query.first() #now your user instance populated
print(user.name) #John
users = query.all() #a list of User instance, populated
到最後一行,現在你有填充用戶實例的列表,可以在該列表迭代如下:
for user in users:
print(user.name, user.id)
謝謝您,你的回答對我來說很清楚:) – utopman