python中常用的各種數(shù)據(jù)庫(kù)操作模塊和連接實(shí)例
工作中,經(jīng)常會(huì)有用python訪問(wèn)各種數(shù)據(jù)庫(kù)的需求,比如從oracle讀點(diǎn)配置文件或者往mysql寫(xiě)點(diǎn)結(jié)果信息之類的。
這里列一下可能用到的各個(gè)模塊。
sqlite3: 內(nèi)置模塊
用sqlite,有時(shí)候確實(shí)很方便,我覺(jué)得它確實(shí)做到了宣稱的“零配置”。python自2.5版以來(lái),就內(nèi)置了對(duì)sqlite3的支持,使用也非常簡(jiǎn)單,按照文檔上來(lái):
#打開(kāi)db文件,獲得連接
conn = sqlite3.connect('數(shù)據(jù)文件名')
#獲得游標(biāo)
c = conn.cursor()
#執(zhí)行SQL
c.execute('''SQL 片段''')
#如果有對(duì)數(shù)據(jù)的修改操作,那就需要commit一下
conn.commit()
#關(guān)閉游標(biāo)
c.close()
#關(guān)閉連接
conn.close()
另外,關(guān)于sqlite在C和bash下的用法,可以參考為以前的文章。
oracle: cx_Oracle
其實(shí),前面先介紹sqlite3,除了它確實(shí)是個(gè)小數(shù)據(jù)庫(kù)以外,還有一個(gè)原因:其他數(shù)據(jù)庫(kù)在python下的操作,其實(shí)基本上和sqlite3的操作是一樣的,也就是說(shuō),python其實(shí)已經(jīng)幾乎統(tǒng)一了數(shù)據(jù)庫(kù)的接口。
打開(kāi)cx_Oracle的文檔頁(yè)面,你會(huì)發(fā)現(xiàn)其風(fēng)格也和python文檔很像,因?yàn)樗麄兌际怯?Sphinx 做的。模塊的使用方法就更像了,把上面的代碼里,獲得連接的那行,換成這樣:
conn = cx_Oracle.connect('username/password@TNSname')
就可以了。只要把用戶名、密碼、TNS組成一個(gè)字符串,傳進(jìn)去,就可以得到一個(gè)oracle的連接了。
mysql: MySQLdb
和前兩個(gè)非常類似,連接的時(shí)候用以下兩個(gè)語(yǔ)法之一:
conn = MySQLdb.connect('host', 'username', 'password', 'database')
conn = MySQLdb.connect(host="host", user="username", passwd="password", db="database")
接下來(lái),也把它當(dāng)成sqlite用就好了。
excel: pyExcelerator
好吧,我承認(rèn)excel不算數(shù)據(jù)庫(kù),只是寫(xiě)在這里充數(shù)而已,哈哈。因?yàn)榕紶栠€是要取下別人發(fā)來(lái)的excel里的數(shù)據(jù)的。
其實(shí),用pyExcelerator來(lái)讀取文件也是很簡(jiǎn)單的:
sheets=pyExcelerator.parse_xls('xxx.xls')
這樣出來(lái)以后,sheets就是整個(gè)工作薄了,它是工作表組成的list,而一個(gè)工作表對(duì)應(yīng)于一個(gè)tuple,格式是: ('工作表名', 內(nèi)容),而內(nèi)容又是一個(gè)dict,key是一個(gè)(行數(shù), 列數(shù))的tuple,value才是正在的對(duì)應(yīng)格子的內(nèi)容??雌饋?lái)確實(shí)比較繞,好在處理excel的應(yīng)用也不多,將就吧。
另外,其實(shí)pyExcelerator還支持寫(xiě)入數(shù)據(jù)到excel的,如果有把查詢結(jié)果保存成excel的需求的話,可以試試看,我還是盡量不用這種格式了,哈哈。
- Python模塊對(duì)Redis數(shù)據(jù)庫(kù)的連接與使用講解
- Python使用sqlite3模塊內(nèi)置數(shù)據(jù)庫(kù)
- Python 解析pymysql模塊操作數(shù)據(jù)庫(kù)的方法
- 使用python連接mysql數(shù)據(jù)庫(kù)之pymysql模塊的使用
- Python使用sqlalchemy模塊連接數(shù)據(jù)庫(kù)操作示例
- Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫(kù)的方法詳解
- 在Python中編寫(xiě)數(shù)據(jù)庫(kù)模塊的教程
- Python MySQLdb模塊連接操作mysql數(shù)據(jù)庫(kù)實(shí)例
- Python bsddb模塊操作Berkeley DB數(shù)據(jù)庫(kù)介紹
- ?分享一個(gè)Python?遇到數(shù)據(jù)庫(kù)超好用的模塊
相關(guān)文章
用Python生成器實(shí)現(xiàn)微線程編程的教程
這篇文章主要介紹了用Python生成器實(shí)現(xiàn)微線程編程的教程,本文來(lái)自于IBM官方開(kāi)發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-04-04Python+matplotlib+numpy實(shí)現(xiàn)在不同平面的二維條形圖
這篇文章主要介紹了Python+matplotlib+numpy實(shí)現(xiàn)在不同平面的二維條形圖,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01在Python的Django框架中用流響應(yīng)生成CSV文件的教程
這篇文章主要介紹了在Python的Django框架中用流響應(yīng)生成CSV文件的教程,作者特別講到了防止CSV文件中的中文避免出現(xiàn)亂碼等問(wèn)題,需要的朋友可以參考下2015-05-05Pycharm 設(shè)置默認(rèn)解釋器路徑和編碼格式的操作
這篇文章主要介紹了Pycharm 設(shè)置默認(rèn)解釋器路徑和編碼格式的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02利用Python中的mock庫(kù)對(duì)Python代碼進(jìn)行模擬測(cè)試
這篇文章主要介紹了利用Python中的mock庫(kù)對(duì)Python代碼進(jìn)行模擬測(cè)試,mock庫(kù)自從Python3.3依賴成為了Python的內(nèi)置庫(kù),本文也等于介紹了該庫(kù)的用法,需要的朋友可以參考下2015-04-04python?中的requirements.txt?文件的使用詳情
這篇文章主要介紹了python?中的requirements.txt文件的使用詳情,文章圍繞主題展開(kāi)詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05