日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python ORM模塊sqlalchemy的使用

系統 1870 0

1、安裝sqlalchemy

          
                pip install sqlalchemy

          
        

2、導入必要的包及模塊

          
            
              import
            
             sqlalchemy
    
            
              from
            
             sqlalchemy
            
              .
            
            ext
            
              .
            
            declarative 
            
              import
            
             declarative_base
    
            
              from
            
             sqlalchemy
            
              .
            
            orm 
            
              import
            
             sessionmaker

          
        

3、創建數據庫連接實例

          
            
              #創建數據庫連接實例(#"數據庫類型+數據庫模塊://用戶名:密碼@主機/庫名")
            
            
    db
            
              =
            
            sqlalchemy
            
              .
            
            create_engine
            
              (
            
            
              "mysql+pymysql://root:q1q1q1@localhost/a"
            
            
              )
            
          
        

4、創建一個元類的繼承類

          
                base 
            
              =
            
             declarative_base
            
              (
            
            db
            
              )
            
          
        

5、定義一個表(使用類)繼承base

          
            
              class
            
            
              Student
            
            
              (
            
            base
            
              )
            
            
              :
            
            
        __tablename__ 
            
              =
            
            
              "student"
            
            
              id
            
            
              =
            
             sqlalchemy
            
              .
            
            Column
            
              (
            
            sqlalchemy
            
              .
            
            Integer
            
              ,
            
            primary_key
            
              =
            
            
              True
            
            
              )
            
            
        name 
            
              =
            
             sqlalchemy
            
              .
            
            Column
            
              (
            
            sqlalchemy
            
              .
            
            String
            
              (
            
            
              32
            
            
              )
            
            
              )
            
            
        age 
            
              =
            
             sqlalchemy
            
              .
            
            Column
            
              (
            
            sqlalchemy
            
              .
            
            String
            
              (
            
            
              32
            
            
              )
            
            
              )
            
          
        

6、創建表

base.metadata返回sqlalchemy.schema.MetaData對象,它是所有Table對象的集合,調用create_all()該對象會觸發CREATE TABLE語句,如果數據庫還不存在這些表的話。

          
            
              if
            
             __name__ 
            
              ==
            
            
              "__main__"
            
            
              :
            
            
        base
            
              .
            
            metadata
            
              .
            
            create_all
            
              (
            
            db
            
              )
            
          
        

腳本運行前a數據庫中的表:
python ORM模塊sqlalchemy的使用_第1張圖片
運行上述代碼之后,a數據庫表:
python ORM模塊sqlalchemy的使用_第2張圖片

7、綁定連接并創建session

          
                cursor 
            
              =
            
             sessionmaker
            
              (
            
            bind
            
              =
            
            db
            
              )
            
            
              #得到的時一個類
            
            
    
    session 
            
              =
            
             cursor
            
              (
            
            
              )
            
            
              #實例
            
          
        

8、增(插入數據)

①插入一條數據

          
                stu 
            
              =
            
             Student
            
              (
            
            
              id
            
            
              =
            
            
              1
            
            
              ,
            
            
        name 
            
              =
            
            
              "張1"
            
            
              ,
            
            
        age 
            
              =
            
            
              18
            
            
              )
            
            
    session
            
              .
            
            add
            
              (
            
            stu
            
              )
            
            
    session
            
              .
            
            commit
            
              (
            
            
              )
            
          
        

python ORM模塊sqlalchemy的使用_第3張圖片
②同時插入多條數據

          
                session
            
              .
            
            add_all
            
              (
            
            
              [
            
            
        Student
            
              (
            
            
              id
            
            
              =
            
            
              2
            
            
              ,
            
            name
            
              =
            
            
              "張2"
            
            
              ,
            
            age
            
              =
            
            
              19
            
            
              )
            
            
              ,
            
            
        Student
            
              (
            
            
              id
            
            
              =
            
            
              3
            
            
              ,
            
            name
            
              =
            
            
              "張3"
            
            
              ,
            
            age
            
              =
            
            
              20
            
            
              )
            
            
              ]
            
            
              )
            
            
    session
            
              .
            
            commit
            
              (
            
            
              )
            
          
        

python ORM模塊sqlalchemy的使用_第4張圖片

9、查詢

①查詢所有數據

          
                all_data 
            
              =
            
             session
            
              .
            
            query
            
              (
            
            Student
            
              )
            
            
              .
            
            
              all
            
            
              (
            
            
              )
            
            
              #得到的是一個可迭代對象
            
            
              for
            
             data 
            
              in
            
             all_data
            
              :
            
            
              print
            
            
              (
            
            
              "id:%s__name:%s__age:%s"
            
            
              %
            
            
              (
            
            data
            
              .
            
            
              id
            
            
              ,
            
            data
            
              .
            
            name
            
              ,
            
            data
            
              .
            
            age
            
              )
            
            
              )
            
          
        

python ORM模塊sqlalchemy的使用_第5張圖片

②根據條件查詢多條數據

          
                many_data 
            
              =
            
             session
            
              .
            
            query
            
              (
            
            Student
            
              )
            
            
              .
            
            filter_by
            
              (
            
            age
            
              =
            
            
              18
            
            
              )
            
            
              print
            
            
              (
            
            many_data
            
              )
            
            
              #實際是一個sql查詢語句,其還是一個存儲一個對象的帶迭代內容
            
            
              for
            
             data 
            
              in
            
             many_data
            
              :
            
            
              print
            
            
              (
            
            
              "id:%s__name:%s__age:%s"
            
            
              %
            
            
              (
            
            data
            
              .
            
            
              id
            
            
              ,
            
            data
            
              .
            
            name
            
              ,
            
            data
            
              .
            
            age
            
              )
            
            
              )
            
          
        

在這里插入圖片描述
還可以通過序列解包的方式獲取數據

          
                many_data 
            
              =
            
             session
            
              .
            
            query
            
              (
            
            Student
            
              )
            
            
              .
            
            filter_by
            
              (
            
            age
            
              =
            
            
              18
            
            
              )
            
            
    data
            
              ,
            
            
              =
            
             many_data
    
            
              print
            
            
              (
            
            
              "id:%s__name:%s__age:%s"
            
            
              %
            
            
              (
            
            data
            
              .
            
            
              id
            
            
              ,
            
            data
            
              .
            
            name
            
              ,
            
            data
            
              .
            
            age
            
              )
            
            
              )
            
          
        

③查詢一條數據

          
                data 
            
              =
            
             session
            
              .
            
            query
            
              (
            
            Student
            
              )
            
            
              .
            
            get
            
              (
            
            ident
            
              =
            
            
              3
            
            
              )
            
            
              #查一條,只能以主鍵查
            
            
              print
            
            
              (
            
            
              "id:%s__name:%s__age:%s"
            
            
              %
            
            
              (
            
            data
            
              .
            
            
              id
            
            
              ,
            
            data
            
              .
            
            name
            
              ,
            
            data
            
              .
            
            age
            
              )
            
            
              )
            
          
        

10、刪除

          
            
              #先查詢一條
            
            
    data 
            
              =
            
             session
            
              .
            
            query
            
              (
            
            Student
            
              )
            
            
              .
            
            get
            
              (
            
            ident
            
              =
            
            
              3
            
            
              )
            
            
              #然后刪除
            
            
    session
            
              .
            
            delete
            
              (
            
            data
            
              )
            
            
              #然后提交操作
            
            
    session
            
              .
            
            commit
            
              (
            
            
              )
            
          
        

python ORM模塊sqlalchemy的使用_第6張圖片

11、修改

          
            
              # 先查詢一條
            
            
   data 
            
              =
            
             session
            
              .
            
            query
            
              (
            
            Student
            
              )
            
            
              .
            
            get
            
              (
            
            ident
            
              =
            
            
              2
            
            
              )
            
            
              #然后刪除
            
            
   data
            
              .
            
            name 
            
              =
            
            
              "老李頭"
            
            
              #然后提交操作
            
            
   session
            
              .
            
            commit
            
              (
            
            
              )
            
          
        

python ORM模塊sqlalchemy的使用_第7張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 克山县| 太仓市| 奇台县| 仪征市| 尼玛县| 瓮安县| 左贡县| 锡林郭勒盟| 昌都县| 龙南县| 荃湾区| 炎陵县| 阿城市| 阿勒泰市| 乐平市| 南京市| 渑池县| 两当县| 东城区| 东平县| 永顺县| 墨玉县| 乐都县| 石楼县| 宝丰县| 庆云县| 颍上县| 四川省| 永福县| 潜江市| 平武县| 喜德县| 北流市| 平塘县| 孝昌县| 库伦旗| 八宿县| 镇赉县| 东兰县| 海门市| 雷州市|