DC學院學習筆記(九):利用Python進行資料庫操作

kissjz發表於2018-02-13

用python進行資料庫操作,感覺蠻酷的。

PyMySQL

安裝

OK,最新的安裝已經支援pip。

pip install pymysql

建立名為user的表格以備後續操作

CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `email` varchar(255) COLLATE utf8_bin NOT NULL,
    `password` varchar(255) COLLATE utf8_bin NOT NULL,
    PRIMARY KEY (`id`)
) 
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO_INCREMENT=1 ;

利用Python進行資料庫操作

  • 連線MySQL資料庫
  • 建立新的資料
  • 資料的呼叫

連線MySQL資料庫

import pymysql.cursors
#使用pymysql指令來連線資料庫
connection=pymysql.connect(host=``,user=``,password=``,db=``,charset=``,cursorclass=pymysql.cursors.DictCursor
)
host:要連線的資料庫的IP地址
user:登入的賬戶名,如果登入的是最高許可權賬戶則為root
password:對應的密碼
db:要連線的資料庫,如需要訪問上節課儲存的IRIS資料庫,則輸入`IRIS`
charset:設定編碼格式,如utf8mb4就是一個編碼格式
cursorclass:返回到Python的結果,以什麼方式儲存,如Dict.Cursor是以字典的方式儲存

建立新的資料

try:
    #從資料庫連結中得到cursor的資料結構
    with connection.cursor() as cursor:
    #在之前建立的user表格基礎上,插入新資料,這裡使用了一個預編譯的小技巧,避免每次都要重複寫sql的語句
        sql="INSERT INTO `USERS`(`email`,`password`) VALUES (%s,%s)"
        cursor.execute(sql,(`webmaster@python.org`,`very_secret`))
    #執行到這一行指令時才是真正改變了資料庫,之前只是快取在記憶體中

    connection.commit()

呼叫資料

    with connection.cursor() as cursor:
        sql = "SELECT `id`,`password` FROM `user` WHERE `email`=%s"
        cursor.execute(sql,(`webmaster@python.org`,))
        #只取出一條結果
        result=cursor.fetchone()
        print(result)

#最後別忘了關閉連線
finally:
    connection.close()

結果

{`password`: `very-secret`, `id`: 1} 


相關文章