使用ORM新增數據在Mysql中

【前言】

想要使用ORM在數據庫中進行操做數據,前提是已經新建了ORM模型 ;就是咱們以前已經搭建的模型https://www.cnblogs.com/xinhua19/p/15038353.htmlhtml

【ORM操做步驟】

  • 構造ORM模型對象
  • 添加到session
  • 提交到數據庫
  • 出現異常,回滾事務(可選)

【構造ORM模型對象】

 

代碼例子

user_obj = User(
username="use1",
password="123456",
real_name = "用戶1",
age=12
)

 

【添加到session】

#  添加1個對象
session.add(user_obj)

#  添加多個對象
session.add_all([user1,user2,user3])

【session的做用】

  • 創建與數據庫之間的會話
  • 使用session對數據庫中的數據進行增刪改查
  • 使用session進行事務控制(提交和回滾)
  • 使用完後須要關閉它  session.close()

 【session的建立】

有兩種方法,下圖代碼示例sql

# 方法一 實例化session
from sqlalchemy.orm import Session

with Session(engine) as session:
    session.add(User())
    session.commit()

#  方法二 使用工廠函數建立
from sqlalchemy.orm import sessionmaker

Session = sessionmaker(engine)

with Session.begin()  as session:
    session.add(User())

 

【數據提交到數據庫】

代碼例子

with Session(engine) as  session:
    session.add(user_obj)
    session.add_all([user1,user1,user1])
    session.commit()

【出現異常,回滾事務】

代碼例子


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)   執行SQL查詢session

2. delete(instance)   物理刪除數據函數

3. get(entity,idnet,*args)  根據主鍵返回知足條件的ORM對象/Nonespa

4. query(*entities,**kwargs)code

使用ORM查詢,返回Query對象orm

相關文章
相關標籤/搜索