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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python流行ORM框架sqlalchemy的簡(jiǎn)單使用

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

http://docs.sqlalchemy.org

1、安裝

#進(jìn)入虛擬環(huán)境#執(zhí)行./python3 -m pip installimport sqlalchemyprint(sqlalchemy.__version__) # 1.1.15我這里使用的版本是1.1.15創(chuàng)建連接對(duì)象

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

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

運(yùn)行時(shí)會(huì)出錯(cuò),因?yàn)樾枰?qū)動(dòng)庫(kù),默認(rèn)會(huì)調(diào)用MySQLdb。

ImportError: No module named ’MySQLdb’

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

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

SQL語(yǔ)句查詢

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

既然我們用ORM,就是為了少寫(xiě)甚至不寫(xiě)SQL語(yǔ)句。

ORM是數(shù)據(jù)表和對(duì)象之間的映射。

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

1、創(chuàng)建一個(gè)Infos.py文件,這個(gè)文件我們來(lái)做數(shù)據(jù)表的映射

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類就是我們數(shù)據(jù)表news的映射(字段:id、title)。

2、使用

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

我們要注意最后的查詢結(jié)果,看看結(jié)果集中的元素長(zhǎng)什么樣?^_^

<mappers.Infos.News object at 0x1050c6e80>

查詢處理的記錄都是對(duì)象。

各種查詢

只查詢第一條記錄

# 查詢第一條result = mySession.query(News).first()print(result.title) #打印對(duì)象屬性通過(guò)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()分頁(yè)查詢# 分頁(yè)查詢 0,2result = mySession.query(News).filter(News.id>1).limit(2).offset(0).all()print(result)自定義過(guò)濾條件# 自定義過(guò)濾條件result = mySession.query(News).filter(text('id>:id')).params(id=2).all()

根據(jù)主鍵查詢

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

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

前面方法我們是手動(dòng)創(chuàng)建了一個(gè)名叫Infos.py的文件,然后定義了一個(gè)News類,把這個(gè)類作為和我們news數(shù)據(jù)表的映射。

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)

現(xiàn)在我們來(lái)看看sqlacodegen這個(gè)工具,自動(dòng)生成像上面那樣的類文件。

1、安裝sqlacodegen

#cd 項(xiàng)目虛擬環(huán)境#執(zhí)行./python3 -m pip install sqlacodegen

2、使用sqlacodegen生成案列

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

到此這篇關(guān)于Python流行ORM框架sqlalchemy的文章就介紹到這了,更多相關(guān)Python ORM框架sqlalchemy內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 99r精品在线 | 成人欧美精品一区二区不卡 | 欧美一区二区精品 | 欧美做爰野外在线视频观看 | 亚洲精品无码不卡在线播放he | 久久精品国产亚洲网站 | 亚洲欧美日韩高清在线看 | 日韩视频专区 | 欧美激情视频一级视频一级毛片 | 日本黄色官网 | 美国三级在线 | 韩国一级性生活片 | 99国产精品久久久久久久日本 | 全免费毛片在线播放 | 一级做a爱久久久久久久 | 久久国产网站 | 成人禁在线观看午夜亚洲 | 99久久精品国产一区二区三区 | 亚洲国产免费 | 久草在线视频精品 | 美女黄页网站免费进入 | 夜色成人免费观看 | 国产成人在线视频观看 | 欧美一区二区三区四区在线观看 | 99久久在线 | 久久99精品久久只有精品 | 玖玖影院在线观看 | 国产a国产片国产 | 亚洲最大情网站在线观看 | 久久在视频 | 最新更新国内自拍视频 | 成人毛片1024你懂的 | 欧美特一级| 国产永久精品 | 日本高清视频www夜色资源 | 欧美一级视频免费观看 | 成人国产精品久久久免费 | 日韩伦理一区二区三区 | 日韩免费在线视频 | 成网站在线观看人免费 | 国产精品成人免费视频不卡 |