在我的Python包中,我定義了一些Sqlalchemy實體類。所有類都使用ORM聲明性技術進行定義。大多數類使用常規屬性和關係直接映射到數據庫表(以1:1的方式),只有幾個類使用簡單的hybrid_attributes。Python將實用函數添加到SqlAlchemy實體類
當您查看Elixir或Camelot等其他一些軟件包時,它們具有補充的sqlalchemy功能,可以將附加屬性附加到每個實體實例上,提供便利操作。例如,to_dict()
,它將實體實例複製到字典和from_dict()
,它試圖從字典創建一個新的實體實例。
什麼是最簡單的方法去手動添加這樣的功能到我自己的實體類?尋找通用方法,這些方法對於最常見的用途將有最少的注意事項。
使用元數據/映射器來查找適當的Column鍵集? (for to_dict)
類方法?靜態方法?
子類declaratory_base from sqlalchemy.ext.declarative
?
mixin怎麼樣?