我只是想以編程方式確定SQLalchemy模型主鍵的名稱。如何獲取SQLAlchemy對象主鍵的名稱?
34
A
回答
35
如果使用SQLAlchemy版本0.8或更高版本,則應該使用runtime inspection API。
如果模型類是User
和唯一的主鍵是id
,
>>> from sqlalchemy.inspection import inspect
>>> inspect(User).primary_key[0].name
'id'
如果模型類是User
,有很多主鍵,使用SQLAlchemy的版本少
>>> from sqlalchemy.inspection import inspect
>>> [key.name for key in inspect(User).primary_key]
['id', 'name']
如果比0.8,你應該使用class_mapper()
功能。
>>> from sqlalchemy.orm import class_mapper
>>> class_mapper(User).primary_key[0].name
'id'
在這種情況下,inspect()
功能和class_mapper()
函數返回相同的對象,但使用inspect()
更是面向未來的。
5
如果類是 「用戶」,並有1只主鍵,這樣做*:
User.__mapper__.primary_key._list[0].name
*從問題中移動。
0
假設聲明模型類是User
,
>>> list(User.__table__.primary_key)[0].name
'id'
或爲Membership
具有複合主鍵
>>> [pk.name for pk in Membership.__table__.primary_key]
['user_id', 'group_id']
相關問題
- 1. 從sqlalchemy(Core)中的表中獲取主鍵列名稱
- 2. 如何獲取JValue對象的名稱
- 3. 如何獲取類的對象名稱?
- 4. 如何在sqlalchemy中獲取backref名稱?
- 5. 獲取對象的名稱
- 6. 獲取對象的名稱
- 7. SimpleXML - 如何獲取根對象名稱?
- 8. 如何獲取對象名稱?
- 9. 如何獲取對象名稱?
- 10. jquery:獲取對象名稱?
- 11. C# - 獲取對象名稱?
- 12. 獲取對象名稱
- 13. 從對象中獲取對象名稱
- 14. 如何獲取NSMutableDictionary的鍵的名稱
- 15. C#獲取對象對的名稱
- 16. 如何獲取模型的主鍵屬性名稱? (水線ORM)
- 17. 如何編寫查詢來獲取主鍵的名稱
- 18. 如何獲得給定主鍵名稱變量和pk值的對象?
- 19. HQL:獲取對象的主鍵
- 20. 如何更改json對象名稱(鍵)?
- 21. 如何獲取Windows 7主題名稱
- 22. 如何獲得Javascript中的對象鍵名稱for ... in循環?
- 23. 獲取GenericForeign鍵對象的名稱屬性
- 24. 獲取表的主鍵名
- 25. 獲取通用對象的類名稱
- 26. 獲取參數對象的名稱
- 27. 獲取循環內對象的名稱
- 28. QT:獲取對象的類名稱
- 29. 獲取對象ddplyed的名稱
- 30. PHP JSON獲取對象的名稱
如果該解決方案適用於你,這是完全可以接受的解決方案添加爲回答並標記爲「已回答」。這有助於人們在尋找未解答的問題時。 –