python連接數據庫


驅動安裝
安裝MySQL驅動
由於MySQL服務器以獨立的進程運行,並通過網絡對外服務,所以,需要支持Python的MySQL驅動來連接到MySQL服務器。MySQL官方提供了mysql-connector-python驅動,但是安裝的時候需要給
支持的版本 Python versions v2.6, v2.7 and Python v3.1 to 3.3 (See version overview)
實現Python DB API 2.0 (PEP 249)。
純Python MySQL協議的實現。
Oracle積極開發和維護。官方維護的庫。
包括Django數據庫后端。
pip命令加上參數 --allow-external:
$ pip install mysql-connector-python --allow-external mysql-connector-python
如果上面的命令安裝失敗,可以試試另一個驅動:
$ pip install mysql-connector
我們演示如何連接到MySQL服務器的test數據庫:
# 導入MySQL驅動: >>> import mysql.connector # 注意把password設為你的root口令: >>> conn = mysql.connector.connect(user='root', password='password', database='test') >>> cursor = conn.cursor() # 創建user表: >>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))') # 插入一行記錄,注意MySQL的占位符是%s: >>> cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael'])
# 刪除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") >>> cursor.rowcount 1 # 提交事務: >>> conn.commit() >>> cursor.close() # 運行查詢: >>> cursor = conn.cursor() >>> cursor.execute('select * from user where id = %s', ('1',)) >>> values = cursor.fetchall() >>> values [('1', 'Michael')] # 關閉Cursor和Connection: >>> cursor.close() True >>> conn.close()
由於Python的DB-API定義都是通用的,所以,操作MySQL的數據庫代碼和SQLite類似。
小結
  • 執行INSERT等操作后要調用commit()提交事務;
  • MySQL的SQL占位符是%s。
 
 
使用Python的DB-API時,只要搞清楚 Connection和Cursor對象,打開后一定記得關閉,就可以放心地使用。
使用 Cursor對象執行insert,update,delete語句時,執行結果由rowcount返回影響的行數,就可以拿到執行結果。
使用 Cursor對象執行select語句時,通過featchall()可以拿到結果集。結果集是一個list,每個元素都是一個tuple,對應一行記錄。
如果SQL語句帶有參數,那么需要把參數按照位置傳遞給 execute()方法,有幾個?占位符就必須對應幾個參數,例如:
cursor.execute('select * from user where name=? and pwd=?', ('abc', 'password'))
SQLite支持常見的標准SQL語句以及幾種常見的數據類型。具體文檔請參閱SQLite官方網站。
 
注意:
在Python中操作數據庫時,要先導入數據庫對應的驅動,然后,通過 Connection對象和Cursor對象操作數據。
要確保打開的 Connection對象和Cursor對象都正確地被關閉,否則,資源就會泄露。
如何才能確保出錯的情況下也關閉掉 Connection對象和Cursor對象呢?請回憶try:...except:...finally:...的用法。
 
PyMySQL
URL
Python versions
2.4 - 3.2
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM