編寫(xiě)Python腳本把sqlAlchemy對(duì)象轉(zhuǎn)換成dict的教程
在用sqlAlchemy寫(xiě)web應(yīng)用的時(shí)候,經(jīng)常會(huì)用json進(jìn)行通信,跟json最接近的對(duì)象就是dict,有時(shí)候操作dict也會(huì)比操作ORM對(duì)象更為方便,畢竟不用管數(shù)據(jù)庫(kù)session的狀態(tài)了。
假設(shè)數(shù)據(jù)庫(kù)里有一張post表,其中一種方法就是
p = session.query(Post).first() p.__dict__
但由于p是sqlAlchemy的對(duì)象,所以p.__dict__中會(huì)有一些其他的屬性比如_sa_instance這種我們不需要關(guān)注的
那么我們可以給model的基類加一個(gè)方法,假設(shè)models.py中原來(lái)是這樣
Base = sqlalchemy.ext.declarative.declarative_base() class Post(Base): __tablename__ = 'post' id = Column(Integer, primary_key=True) title = Column(String)
那么我們可以加一個(gè)to_dict()方法到Base類中
def to_dict(self):
return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
Base.to_dict = to_dict
這樣就可以
p = session.query(Post).first() p.to_dict()
當(dāng)然,如果model沒(méi)有和table綁定的話model里是沒(méi)有__table__的信息的,可能也會(huì)出問(wèn)題,不過(guò)我目前覺(jué)得這樣最方便了
- Python SQLAlchemy基本操作和常用技巧(包含大量實(shí)例,非常好)
- Python的ORM框架SQLAlchemy入門(mén)教程
- Python ORM框架SQLAlchemy學(xué)習(xí)筆記之?dāng)?shù)據(jù)添加和事務(wù)回滾介紹
- Python ORM框架SQLAlchemy學(xué)習(xí)筆記之?dāng)?shù)據(jù)查詢實(shí)例
- Python ORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡(jiǎn)單查詢實(shí)例
- Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實(shí)例
- Python ORM框架SQLAlchemy學(xué)習(xí)筆記之映射類使用實(shí)例和Session會(huì)話介紹
- 研究Python的ORM框架中的SQLAlchemy庫(kù)的映射關(guān)系
- Python的Flask框架中SQLAlchemy使用時(shí)的亂碼問(wèn)題解決
- 教大家使用Python SqlAlchemy
- 在Python的Flask框架下使用sqlalchemy庫(kù)的簡(jiǎn)單教程
- Python程序中使用SQLAlchemy時(shí)出現(xiàn)亂碼的解決方案
- Python的ORM框架中SQLAlchemy庫(kù)的查詢操作的教程
- Python的SQLAlchemy框架使用入門(mén)
- Python的Django框架中使用SQLAlchemy操作數(shù)據(jù)庫(kù)的教程
相關(guān)文章
Python全棧之進(jìn)程和守護(hù)進(jìn)程
這篇文章主要為大家介紹了Python進(jìn)程和守護(hù)進(jìn)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12
python反轉(zhuǎn)一個(gè)三位整數(shù)的多種實(shí)現(xiàn)方案
這篇文章主要介紹了python反轉(zhuǎn)一個(gè)三位整數(shù)的多種實(shí)現(xiàn)方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
python連接access數(shù)據(jù)庫(kù)兩種方式總結(jié)
這篇文章主要介紹了python連接access數(shù)據(jù)庫(kù)兩種方式的相關(guān)資料,SQLAlchemy使用access方言進(jìn)行連接,而pyodbc則通過(guò)pyodbc模塊實(shí)現(xiàn)連接,文章還提供了連接代碼示例,需要的朋友可以參考下2025-02-02
Django imgareaselect手動(dòng)剪切頭像實(shí)現(xiàn)方法
這篇文章主要介紹了Django imgareaselect手動(dòng)剪切頭像實(shí)現(xiàn)方法,實(shí)例分析了Django框架操作圖片的相關(guān)技巧,需要的朋友可以參考下2015-05-05

