国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

PythonORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡單查詢實(shí)例

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:38:23
文檔

PythonORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡單查詢實(shí)例

PythonORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡單查詢實(shí)例:最近正好在尋求一種Python的數(shù)據(jù)庫ORM (Object Relational Mapper),SQLAlchemy (項(xiàng)目主頁)這個(gè)開源項(xiàng)目進(jìn)入了我的視線,本來想嘗試著使用Django的ORM模塊的,無奈Django的模塊聯(lián)系比較緊密,沒能單獨(dú)分拆下來,一定程度上說明Django自成體系的生態(tài)系統(tǒng)
推薦度:
導(dǎo)讀PythonORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡單查詢實(shí)例:最近正好在尋求一種Python的數(shù)據(jù)庫ORM (Object Relational Mapper),SQLAlchemy (項(xiàng)目主頁)這個(gè)開源項(xiàng)目進(jìn)入了我的視線,本來想嘗試著使用Django的ORM模塊的,無奈Django的模塊聯(lián)系比較緊密,沒能單獨(dú)分拆下來,一定程度上說明Django自成體系的生態(tài)系統(tǒng)

最近正好在尋求一種Python的數(shù)據(jù)庫ORM (Object Relational Mapper),SQLAlchemy (項(xiàng)目主頁)這個(gè)開源項(xiàng)目進(jìn)入了我的視線,本來想嘗試著使用Django的ORM模塊的,無奈Django的模塊聯(lián)系比較緊密,沒能單獨(dú)分拆下來,一定程度上說明Django自成體系的生態(tài)系統(tǒng)在給我們帶來快速便捷的開發(fā)環(huán)境的同時(shí)犧牲了組裝的靈活性。

初次學(xué)習(xí),也沒實(shí)質(zhì)感覺到SQLAlchemy的好處,不過看其介紹的很多大公司均采用該項(xiàng)目,而且其支持的數(shù)據(jù)庫還是蠻豐富的,所以我覺得花點(diǎn)時(shí)間研究還是值得的。不過令人遺憾的是關(guān)于SQLAlchemy的中文資料比較少,所以對(duì)于我們這種英語不佳的帶來了一定的麻煩。

研究一個(gè)項(xiàng)目最好的辦法就是閱讀其官方提供的說明文檔,當(dāng)然很輕松就找到了SQLAlchemy的文檔 (0.7)。文檔的格式和大多數(shù)項(xiàng)目一樣,有下載安裝說明,有示例,有快速上手教程。不過我還是習(xí)慣下載個(gè)PDF慢慢研究。

下面就將我近期的閱讀學(xué)習(xí)做個(gè)筆記,當(dāng)然這個(gè)僅供參考,里面可能有自己的一些猜測和想法,不作權(quán)威依據(jù),不當(dāng)之處還希望指出。

1. 安裝SQLAlchemy

安裝部分不打算詳細(xì)介紹,可以通過easy_install或者pip進(jìn)行安裝,命令如下:

代碼如下:

easy_install SQLAlchemy
# 或者
pip install SQLAlchemy


當(dāng)然我使用的是Windows環(huán)境,所以傾向于使用setup.py安裝,下載壓縮包,解壓,然后命令提示符下切換到該目錄,再運(yùn)行下面的命令:

代碼如下:


python setup.py install


這里需要注意的是默認(rèn)安裝會(huì)編譯安裝C擴(kuò)展,這些C擴(kuò)展將直接編譯為二進(jìn)制本機(jī)代碼然后為SQLAlchemy處理數(shù)據(jù)集加速,這個(gè)是很不錯(cuò)的功能,遺憾的是Windows下提示編譯安裝擴(kuò)展失敗,當(dāng)然這不影響SQLAlchemy的使用,只是作為性能上的優(yōu)化,本機(jī)開發(fā)環(huán)境可以不需要這些擴(kuò)展,如果不需要可以嘗試下面的命令:

代碼如下:


pip install --global-option='--without-cextensions' SQLAlchemy
# 或者setup.py方式
python setup.py --without-cextensions install


好了,到這里安裝部分我就簡單介紹完了,如果對(duì)這部分感興趣的話可以移步文檔。

最后可以檢驗(yàn)一下安裝成果:

代碼如下:


>>> import sqlalchemy
>>> sqlalchemy.__version__
0.7.0

2. 簡單的查詢

就像任何新語言都是從萬能的'Hello World'開始一樣,先簡單體驗(yàn)一把SQLAlchemy,由于SQLAlchemy是管理數(shù)據(jù)庫的,所以我們需要一個(gè)數(shù)據(jù)庫,自從用了Python以后,一提到數(shù)據(jù)庫,拿來做實(shí)驗(yàn)的首當(dāng)其沖的就是Python自帶的SQLite3,這次我們連SQLite的數(shù)據(jù)庫文件都不需要指定了,直接創(chuàng)建一份基于內(nèi)存的數(shù)據(jù)庫,也就是說數(shù)據(jù)文件存放在內(nèi)存中,便于我們下面的測試。

我們使用create_engine創(chuàng)建數(shù)據(jù)庫連接引擎:

代碼如下:


>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:', echo=True)


create_engine的第一個(gè)參數(shù)'sqlite:///:memory:'我們知道是建立數(shù)據(jù)庫連接的,那第二個(gè)參數(shù)echo=True是做什么的呢,其實(shí)如果echo=True那么SQLAlchemy將會(huì)通過Python標(biāo)準(zhǔn)模塊logging來輸出日志,如果你在操作交互式命令控制臺(tái),一些信息將會(huì)被輸出,這里我們可能會(huì)看到SQLAlchemy生成的一些SQL語句,這個(gè)對(duì)于我們學(xué)習(xí)和調(diào)試是很有必要的,所以在這里我們將其設(shè)置為True,否則,如果不愿意SQLAlchemy這么啰嗦的話可以設(shè)置為False,這樣就看不到這些信息啦。

create_engine()將會(huì)返回一個(gè)Engine引擎實(shí)例(instance),其代表著SQLAlchemy對(duì)于數(shù)據(jù)庫的核心接口,其隱藏了各種數(shù)據(jù)庫方言(dialect)的細(xì)節(jié),實(shí)際上SQLAlchemy的底層是Python的DBAPI。

需要注意的是此時(shí)并沒有實(shí)質(zhì)上與數(shù)據(jù)庫建立連接,什么時(shí)候才會(huì)與數(shù)據(jù)庫真正建立連接呢?這個(gè)只會(huì)在你第一次查詢數(shù)據(jù)庫的時(shí)候發(fā)生。呃…這個(gè)有點(diǎn)像Lazy Loading (懶惰加載,延遲加載),也就是說我們需要真正操作數(shù)據(jù)庫的時(shí)候才真正建立連接。SQLAlchemy很多地方用到了Lazyload,以后會(huì)有機(jī)會(huì)和大家介紹的。

接下來我們來執(zhí)行第一條SQL語句,同時(shí)建立數(shù)據(jù)庫連接:

代碼如下:


>>> engine.execute("select 1").scalar()
1


好了,當(dāng)engine.execute執(zhí)行時(shí),Engine終于建立起實(shí)質(zhì)上數(shù)據(jù)庫連接了。

Engine對(duì)于數(shù)據(jù)庫連接的管理采取的是數(shù)據(jù)庫連接池 (Pool),當(dāng)連接第一次建立,SQLAlchemy將會(huì)將建立的連接放入內(nèi)部的連接池中以便于隨后的數(shù)據(jù)操作語句執(zhí)行時(shí)復(fù)用。

當(dāng)然關(guān)于Engine的用法并不是SQLAlchemy精彩的ORM部分,隨后我們會(huì)介紹將Engine綁定到ORM,然后使用對(duì)象來操作數(shù)據(jù)庫部分。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

PythonORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡單查詢實(shí)例

PythonORM框架SQLAlchemy學(xué)習(xí)筆記之安裝和簡單查詢實(shí)例:最近正好在尋求一種Python的數(shù)據(jù)庫ORM (Object Relational Mapper),SQLAlchemy (項(xiàng)目主頁)這個(gè)開源項(xiàng)目進(jìn)入了我的視線,本來想嘗試著使用Django的ORM模塊的,無奈Django的模塊聯(lián)系比較緊密,沒能單獨(dú)分拆下來,一定程度上說明Django自成體系的生態(tài)系統(tǒng)
推薦度:
標(biāo)簽: 安裝 python python安裝
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 久久久久国产成人精品亚洲午夜 | 久久久影院亚洲精品 | 欧美日韩国产一区二区三区播放 | 国产精品视频免费视频 | 曰韩在线| 久久这里只有精品国产 | 欧美一区二区在线免费观看 | 日韩欧美在线第一页 | 成人欧美一区二区三区视频 | 久久午夜一区二区 | 精品国产91久久久久久久 | 亚洲国产精品成人久久 | 欧美极品尤物在线播放一级 | 久久精品国产一区二区 | 亚洲一区二区三区免费观看 | 亚洲视频一区二区三区 | 久久精品一区二区 | 欧美成人伊人久久综合网 | 国产精品每日更新在线观看 | 国产成人+亚洲欧洲 | 日本三级电影网址 | 2020精品极品国产色在线观看 | 国产精品欧美韩国日本久久 | 日本一区二区三区免费观看 | 91福利国产在线观一区二区 | 久久99精品久久久久久 | 欧美 韩国 精品 另类 综合 | 精品欧美 | 91精品久久久久 | 91久久精品| 国产成人三级经典中文 | 欧美日韩亚洲一区二区三区在线观看 | 亚洲va欧美ⅴa国产va影院 | 亚洲欧洲日本在线观看 | 免费的一级毛片 | 国产精品亚洲一区二区三区久久 | 日韩欧美 在线播放 | 精品综合一区二区三区 | 91精品国产高清久久久久久91 | 日韩一区二区三区四区不卡 | 久久久久久91 |