色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Python流行ORM框架sqlalchemy的簡單使用

瀏覽:66日期:2022-06-15 09:20:09
安裝

http://docs.sqlalchemy.org

1、安裝

#進入虛擬環境#執行./python3 -m pip installimport sqlalchemyprint(sqlalchemy.__version__) # 1.1.15我這里使用的版本是1.1.15創建連接對象

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#connecting

from sqlalchemy import create_engine# 連接本地test數據庫engine = create_engine('mysql://root:root@localhost/test?charset=utf8')

運行時會出錯,因為需要驅動庫,默認會調用MySQLdb。

ImportError: No module named ’MySQLdb’

我們前面安裝了pymysql,因此完整的要這么寫:

engine = create_engine('mysql+pymysql://root:root@localhost/test?charset=utf8')簡單使用

SQL語句查詢

result = engine.execute('select * from news')print(result.fetchall())#[(1, ’本機新聞標題’), (2, ’今天的新聞’), (3, ’新聞標題1’), (4, ’新聞標題2’), (5, ’元組新聞1’), (6, ’元組新聞2’)]創建映射

既然我們用ORM,就是為了少寫甚至不寫SQL語句。

ORM是數據表和對象之間的映射。

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#declare-a-mapping

1、創建一個Infos.py文件,這個文件我們來做數據表的映射

from sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()from sqlalchemy import Column, Integer, Stringclass News(Base):# 表名稱__tablename__ = ’news’# news表里id字段id = Column(Integer, primary_key=True, autoincrement=True)# news表里title字段title = Column(String(length=255), nullable=False)

News類就是我們數據表news的映射(字段:id、title)。

2、使用

from sqlalchemy import create_enginefrom mappers.Infos import Newsfrom sqlalchemy.orm import sessionmaker# 連接本地test數據庫engine = create_engine('mysql+pymysql://root:root@localhost/test?charset=utf8')# 創建會話session = sessionmaker(engine)mySession = session()# 查詢結果集result = mySession.query(News).all()print(result[0])

我們要注意最后的查詢結果,看看結果集中的元素長什么樣?^_^

<mappers.Infos.News object at 0x1050c6e80>

查詢處理的記錄都是對象。

各種查詢

只查詢第一條記錄

# 查詢第一條result = mySession.query(News).first()print(result.title) #打印對象屬性通過id字段查詢# 查詢id為2的result = mySession.query(News).filter_by(id=2).first()print(result.title)# 查詢id為2的result = mySession.query(News).filter(News.id==2).first()分頁查詢# 分頁查詢 0,2result = mySession.query(News).filter(News.id>1).limit(2).offset(0).all()print(result)自定義過濾條件# 自定義過濾條件result = mySession.query(News).filter(text('id>:id')).params(id=2).all()

根據主鍵查詢

result = mySession.query(News).get(3)print(result.title)新增和修改

# 新增news = News(title='新增測試標題')mySession.add(news)mySession.commit()#修改mySession.query(News).filter(News.id==7).update({'title':'修改之后的標題'})mySession.commit()Python利用sqlacodegen自動生成ORM實體類示例

前面方法我們是手動創建了一個名叫Infos.py的文件,然后定義了一個News類,把這個類作為和我們news數據表的映射。

from sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()from sqlalchemy import Column, Integer, Stringclass News(Base):# 表名稱__tablename__ = ’news’# news表里id字段id = Column(Integer, primary_key=True, autoincrement=True)# news表里title字段title = Column(String(length=255), nullable=False)

現在我們來看看sqlacodegen這個工具,自動生成像上面那樣的類文件。

1、安裝sqlacodegen

#cd 項目虛擬環境#執行./python3 -m pip install sqlacodegen

2、使用sqlacodegen生成案列

#注意還是在虛擬環境目錄下執行./sqlacodegen --tables fund --outfile ../../mappers/Found.py mysql+pymysql://root:root@localhost/test?charset=utf8

到此這篇關于Python流行ORM框架sqlalchemy的文章就介紹到這了,更多相關Python ORM框架sqlalchemy內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 色婷婷国产精品欧美毛片 | 日韩精品久久久免费观看夜色 | 国产在线成人精品 | 人成午夜 | 亚洲国产精品一区二区首页 | 国产精品特黄一级国产大片 | 国产欧美一区二区三区视频 | 香蕉久久久久久狠狠色 | 久久亚洲国产 | 日韩免费高清一级毛片在线 | 国产一级aaa全黄毛片 | 天天干夜夜玩 | 99久久精品费精品国产一区二 | 国产成人香蕉在线视频网站 | 国产成人综合怡春院精品 | 久久一日本道色综合久久m 久久伊人成人网 | 久久w5ww成w人免费不卡 | 国内自拍视频在线看免费观看 | 日韩中文字幕免费在线观看 | 人摸人操| 国产99精品免费视频看6 | 久久免费视频在线观看30 | 深夜成人性视频免费看 | 三级视频网站在线观看 | 在线观看免费毛片 | japanese色系tube护士 | 91成人午夜在线精品 | 国产一级片免费看 | 国产精品黄在线观看观看 | 久草福利资源网站免费 | 国产亚洲一路线二路线高质量 | a级国产精品片在线观看 | 狠狠色丁香久久综合网 | 国内免费视频成人精品 | 日本高清色本免费现在观看 | 国产成人一区二区三区在线视频 | 欧美大片在线观看成人 | 国产成人精品在视频 | 国产精品久久久久一区二区三区 | 三级网站免费 | 中国一级片免费看 |