請註意,下面的查詢返回壹個簡單的tuple對象,而不是DeclarativeMeta對象,這意味著沒有列名。
使用with_entites方法進行查詢:
User.query.with_entities(用戶標識,用戶部門標識)。全部()
2.如果存在外鍵關系,可以使用join進行關聯,join的參數應該使用關系的backref值:
#模型用戶
類用戶(數據庫。型號):
id = db。列(db。整數,primary_key = True)
用戶名= db。列(db。字符串(40),唯壹=真,可空=假)
密碼= db。列(db。字符串(32),可空=假)
電子郵件= db。列(db。字符串(120),唯壹=真)
realname = db。列(db。字符串(20))
部門標識=數據庫。列(db。整數db。外鍵(department.id)
def __init__(自己,用戶名,密碼,電子郵件,真實姓名,部門標識):
self.username =用戶名
self.password =密碼
self.email =電子郵件
self.realname = realname
self.dept_id =部門標識
#車型部門
班級部門(db。型號):
id = db。列(db。整數,primary_key=True)
部門名稱=數據庫。列(db。字符串,唯壹=真,可空=真)
users = db . relationship(‘User‘,backref =‘dept‘,lazy =‘dynamic‘)
def _ _ init _ _(self,department_name):
self.department_name =部門名稱
def _ _ repr _ _(self):
return‘& lt;部門% r & gt;‘% self.department_name
查詢方法:
User.query.with_entities(用戶標識,用戶用戶名,部門名)。加入(用戶部門)。全部()
相當於:
選擇“用戶”。id為user_id,“用戶”。username作為用戶名,department.department_name作為來自“用戶”的department_department_name加入department.id =“用戶”的部門。部門標識