如何在python開(kāi)發(fā)中使用sqlalchemy(二)

ORM的增刪改查

引入:所有的和數(shù)據(jù)庫(kù)有關(guān)的ORM操作都是通過(guò)session會(huì)話對(duì)象實(shí)現(xiàn)的,通過(guò)以下代碼獲取會(huì)話對(duì)象(session):

    from sqlalchemy.orm import sessionmaker
    #engine傳進(jìn)去
    Session = sessionmaker(engine)
    session = Session()
    #或者另一種寫(xiě)法:
    session = sessionmaker(engine)()

接下來(lái)就可以通過(guò)這個(gè)會(huì)話對(duì)象來(lái)操作數(shù)據(jù)庫(kù)了

  • 增:

    • 創(chuàng)建一個(gè)對(duì)象,即創(chuàng)建一條數(shù)據(jù)。

      user = User(username='xiaodong',password='6058')
      
    • 將這個(gè)對(duì)象添加到會(huì)話對(duì)象中:

    session.add(user)
    
    • 將之前的所有操作,做事務(wù)提交:
    session.commit()
    
  • 查:

    • 通過(guò)session.query對(duì)象進(jìn)行查找:

      # 查找table所有數(shù)據(jù)
      session.query(User).all()
      # 查找User這張表中的第一條數(shù)據(jù)
      session.query(User).first()
      # 通過(guò)username=xiaodong來(lái)進(jìn)行過(guò)濾查找
      session.query(User).filter_by(username='xiaodong')
      # 通過(guò)get方法,用主鍵查找對(duì)象
      session.query(User).get(primary_key)
      
  • 改:

    • 從數(shù)據(jù)庫(kù)查找數(shù)據(jù):

      session.query(User).filter_by(username='xiaodong').first()
      
    • 修改成需要的數(shù)據(jù):

      user.username = 'xiaodong'
      
    • 做事務(wù)的提交操作:

      session.commit()
      
python
  • 刪:
    • 從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù):

      user = session.query(User).first()
      
    • 使用session.delete方法進(jìn)行刪除:

      session.delete(user) 
      
    • 做事務(wù)的提交操作:

      session.commit()
      
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,650評(píng)論 18 399
  • 22年12月更新:個(gè)人網(wǎng)站關(guān)停,如果仍舊對(duì)舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,393評(píng)論 22 257
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,011評(píng)論 0 11
  • 本文包括:1、Listener簡(jiǎn)介2、Servlet監(jiān)聽(tīng)器3、監(jiān)聽(tīng)三個(gè)域?qū)ο髣?chuàng)建和銷毀的事件監(jiān)聽(tīng)器4、監(jiān)聽(tīng)三個(gè)域?qū)?..
    廖少少閱讀 6,636評(píng)論 6 28
  • 一個(gè)小島 一個(gè)書(shū)店 一份書(shū)單 兩個(gè)追尋自由 年輕的靈魂 流淌進(jìn)世俗的生活 災(zāi)難 依舊是災(zāi)難 一場(chǎng)突如其來(lái)的災(zāi)難 讓...
    李鑫原創(chuàng)閱讀 205評(píng)論 0 4

友情鏈接更多精彩內(nèi)容