亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python ORM框架SQLAlchemy學習筆記之安裝和簡單查詢實例

 更新時間:2014年06月10日 10:25:19   作者:  
這篇文章主要介紹了Python ORM框架SQLAlchemy學習筆記之安裝和簡單查詢實例,簡明入門教程,需要的朋友可以參考下


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

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

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

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

1. 安裝SQLAlchemy

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

復制代碼 代碼如下:
easy_install SQLAlchemy
# 或者
pip install SQLAlchemy

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

python setup.py install

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

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

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

最后可以檢驗一下安裝成果:

復制代碼 代碼如下:

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

2. 簡單的查詢

就像任何新語言都是從萬能的'Hello World'開始一樣,先簡單體驗一把SQLAlchemy,由于SQLAlchemy是管理數(shù)據(jù)庫的,所以我們需要一個數(shù)據(jù)庫,自從用了Python以后,一提到數(shù)據(jù)庫,拿來做實驗的首當其沖的就是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的第一個參數(shù)'sqlite:///:memory:'我們知道是建立數(shù)據(jù)庫連接的,那第二個參數(shù)echo=True是做什么的呢,其實如果echo=True那么SQLAlchemy將會通過Python標準模塊logging來輸出日志,如果你在操作交互式命令控制臺,一些信息將會被輸出,這里我們可能會看到SQLAlchemy生成的一些SQL語句,這個對于我們學習和調(diào)試是很有必要的,所以在這里我們將其設置為True,否則,如果不愿意SQLAlchemy這么啰嗦的話可以設置為False,這樣就看不到這些信息啦。

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

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

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

復制代碼 代碼如下:

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

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

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

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

相關文章

  • Python制作動態(tài)詞頻條形圖的全過程

    Python制作動態(tài)詞頻條形圖的全過程

    說起動態(tài)圖表,最火的莫過于動態(tài)條形圖了,下面這篇文章主要給大家介紹了關于Python制作動態(tài)詞頻條形圖的全過程,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • python 圖像平移和旋轉(zhuǎn)的實例

    python 圖像平移和旋轉(zhuǎn)的實例

    今天小編就為大家分享一篇python 圖像平移和旋轉(zhuǎn)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Pandas中的loc與iloc區(qū)別與用法小結(jié)

    Pandas中的loc與iloc區(qū)別與用法小結(jié)

    loc函數(shù):通過行索引 “Index” 中的具體值來取行數(shù)據(jù)(如取"Index"為"A"的行)而iloc函數(shù):通過行號來取行數(shù)據(jù)(如取第二行的數(shù)據(jù)),這篇文章介紹Pandas中的loc與iloc區(qū)別與用法,感興趣的朋友一起看看吧
    2024-01-01
  • Python實現(xiàn)鏈表反轉(zhuǎn)的方法分析【迭代法與遞歸法】

    Python實現(xiàn)鏈表反轉(zhuǎn)的方法分析【迭代法與遞歸法】

    這篇文章主要介紹了Python實現(xiàn)鏈表反轉(zhuǎn)的方法,結(jié)合實例形式分析了Python迭代法與遞歸法實現(xiàn)鏈表反轉(zhuǎn)的相關操作技巧與注意事項,需要的朋友可以參考下
    2020-02-02
  • Python實現(xiàn)簡單層次聚類算法以及可視化

    Python實現(xiàn)簡單層次聚類算法以及可視化

    這篇文章主要為大家詳細介紹了Python實現(xiàn)簡單層次聚類算法以及可視化,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • pandas刪除行刪除列增加行增加列的實現(xiàn)

    pandas刪除行刪除列增加行增加列的實現(xiàn)

    這篇文章主要介紹了pandas刪除行刪除列增加行增加列的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • python清除字符串前后空格函數(shù)的方法

    python清除字符串前后空格函數(shù)的方法

    今天小編就為大家分享一篇python清除字符串前后空格函數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python代碼實現(xiàn)備忘錄案例講解

    python代碼實現(xiàn)備忘錄案例講解

    這篇文章主要介紹了python代碼實現(xiàn)備忘錄案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • python如何求100以內(nèi)的素數(shù)

    python如何求100以內(nèi)的素數(shù)

    在本篇文章里小編給大家分享的是關于python如何求100以內(nèi)的素數(shù)的方法實例,需要的朋友們可以學習下。
    2020-05-05
  • 基于python traceback實現(xiàn)異常的獲取與處理

    基于python traceback實現(xiàn)異常的獲取與處理

    這篇文章主要介紹了基于python traceback實現(xiàn)異常的獲取與處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12

最新評論