通過一番折騰終於解決了python3操做數據庫,也走了很多彎路,我將本身的心得記錄下來,也許能幫到正在查找問題的你。python
注意:python版本問題,python2.x與python3.x操做數據庫的區別:python2使用模塊爲MySqldb,而在python3中不支持MySqldb了,可是也能夠使用一個whl的二進制文件實現https://www.jianshu.com/p/c1dbdca5c921,可是不建議這麼作,顯得麻煩,還浪費時間。python3版本用pymysql模塊就能夠了。mysql
詳細的pymysql模塊操做方法以下:sql
"""
pymysql.connect()參數說明:(鏈接數據庫時須要添加的參數)
host(str): MySQL服務器地址
port(int): MySQL服務器端口號
user(str): 用戶名
passwd(str): 密碼
db(str): 數據庫名稱
charset(str): 鏈接編碼
connect()對象支持的方法:
cursor() 使用該鏈接建立並返回遊標
commit() 提交當前事務
rollback() 回滾當前事務
close() 關閉鏈接
cursor對象支持的方法:
execute(op) 執行一個數據庫的查詢命令
fetchone() 取得結果集的下一行
fetchmany(size) 獲取結果集的下幾行
fetchall() 獲取結果集中的全部行
rowcount() 返回數據條數或影響行數
close() 關閉遊標對象
"""
import pymysql
# 鏈接數據庫鏈接
conn = pymysql.connect(host = "192.168.44.158",
user = "root",
passwd = "MyNewPass789"
db = "hanwo",
port = 3306,
charset = "utf8")
# 使用 cursor() 方法建立一個遊標對象 cursor
cursor = conn.cursor()
#輸入查詢語句,注意:這裏輸入後顯示的是高亮狀態其實並無錯誤
sql = 'select * from hanwo_articlecategories'
# 使用 execute() 方法執行 SQL 查詢
cursor.execute(sql)for i in cursor.fetchall(): print(i)print('共查詢到:', cursor.rowcount, '條數據。')# 使用 fetchone() 方法獲取單條數據.data = cursor.fetchone()print(data)# 關閉遊標cursor.close()# 關閉數據庫鏈接conn.close()