Hou*_*run 3 sqlalchemy python-2.7
鉴于我的模型
class CUSTOMER():
ID = db.Column(db.String(12), primary_key=True)
PotentialCustomer = db.Column(db.String(12))
FirstNameEn = db.Column(db.String(35))
LastNameEn = db.Column(db.String(35))
FirstNameKh = db.Column(db.String(35))
LastNameKh = db.Column(db.String(35))
Salutation = db.Column(db.String(4))
Gender = db.Column(db.String(6))
DateOfBirth = db.Column(db.String(10))
CountryOfBirth = db.Column(db.String(2))
Nationality = db.Column(db.String(2))
ProvinceOfBirth = db.Column(db.String(3))
Run Code Online (Sandbox Code Playgroud)
我想获取模型的列表列名称,CUSTOMER()以便我可以循环访问该列名称?
我尝试通过谷歌浏览,但不知道如何存档?
知道我可以存档吗?谢谢
您正在寻找column_descriptions().
当您使用 时column_descriptions(),您将获得有关查询中返回的列的元数据。
在你的情况下:
customer_alias = aliased(CUSTOMER, name='customer2')
#If you want a single field (CUSTOMER.ID)
customer_query = con.query(CUSTOMER, CUSTOMER.ID, customer_alias)
Run Code Online (Sandbox Code Playgroud)
customer_query.column_descriptions
Run Code Online (Sandbox Code Playgroud)
[
{
'name':'CUSTOMER',
'type':CUSTOMER,
'aliased':False,
'expr':CUSTOMER,
'entity': CUSTOMER
},
{
'name':'ID',
'type':String(),
'aliased':False,
'expr':CUSTOMER.ID,
'entity': CUSTOMER
},
{
'name':'customer2',
'type':CUSTOMER,
'aliased':True,
'expr':customer_alias,
'entity': customer_alias
}
]
Run Code Online (Sandbox Code Playgroud)
但是,如果您想要所有密钥,您应该:
#we just want one field:
query = session.query(CUSTOMER).filter_by(id=1)
#then:
conn.execute(query).keys()
Run Code Online (Sandbox Code Playgroud)
你会得到列名['id',PotentialCustomer, FirstNameEN...]
另一种选择:
CUSTOMER.__table__.columns.keys()
CUSTOMER.metadata.columns.keys()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14516 次 |
| 最近记录: |