使用ORM新增數(shù)據(jù)在Mysql中的操作步驟
【】
想要使用ORM在數(shù)據(jù)庫中進(jìn)行操作數(shù)據(jù),前提是已經(jīng)新建了ORM模型 ;就是我們之前已經(jīng)搭建的模型https://www.jb51.net/article/218036.htm
【ORM操作步驟】
- 構(gòu)造ORM模型對象
- 添加到session
- 提交到數(shù)據(jù)庫
- 出現(xiàn)異常,回滾事務(wù)(可選)
【構(gòu)造ORM模型對象】
user_obj = User( username="use1", password="123456", real_name = "用戶1", age=12 )
【添加到session】
# 添加1個(gè)對象 session.add(user_obj) # 添加多個(gè)對象 session.add_all([user1,user2,user3])
【session的作用】
- 建立與數(shù)據(jù)庫之間的會(huì)話
- 使用session對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪改查
- 使用session進(jìn)行事務(wù)控制(提交和回滾)
- 使用完后需要關(guān)閉它 session.close()
【session的創(chuàng)建】
有兩種方法,下圖代碼示例
# 方法一 實(shí)例化session
from sqlalchemy.orm import Session
with Session(engine) as session:
session.add(User())
session.commit()
# 方法二 使用工廠函數(shù)創(chuàng)建
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(engine)
with Session.begin() as session:
session.add(User())
【數(shù)據(jù)提交到數(shù)據(jù)庫】
with Session(engine) as session:
session.add(user_obj)
session.add_all([user1,user1,user1])
session.commit()
【出現(xiàn)異常,回滾事務(wù)】
with Session(engine) as session:
session.begin()
try:
session.add(user1)
session.add(user2)
except:
session.rollback()
raise
else:
session.commit()
【Session對象中其他的常用方法】
1. excute(statement, params=None,*args) 執(zhí)行SQL查詢
2. delete(instance) 物理刪除數(shù)據(jù)
3. get(entity,idnet,*args) 根據(jù)主鍵返回滿足條件的ORM對象/None
4. query(*entities,**kwargs)
使用ORM查詢,返回Query對象
到此這篇關(guān)于使用ORM新增數(shù)據(jù)在Mysql中的文章就介紹到這了,更多相關(guān)ORM mysql數(shù)據(jù)庫內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信