用pymysql模塊連接mysql時遇到一點問題邻奠,眾所周知鹦肿,最常見的連接數(shù)據(jù)庫方式有無外乎以下2種:
連接方式一:
連接方式(一).jpg
為了程序的簡潔雅觀,可以將connect()中的參數(shù)定義在一個字典類型的對象config中,然后將這個字典對象傳進(jìn)connect方法中,如下圖所示:
連接方式二:
連接方式(二).jpg
但是桨醋,出于好奇,查看connect()方法的官方幫助文檔時现斋,發(fā)現(xiàn)connect()的參數(shù)有兩個:args和kwargs喜最,分別以不定長參數(shù)形式呈現(xiàn),然后我就納悶了:這個args不定長參數(shù)是用來干嘛的庄蹋?瞬内??
connect官方文檔.jpg
經(jīng)過幾番查詢和調(diào)試限书,發(fā)現(xiàn)args的作用是虫蝶,補充kwargs中連接數(shù)據(jù)庫時用到的多種參數(shù),如下圖所示:
連接方式三:
連接方式(三).jpg釋疑:從上圖代碼可以看出蔗包,如果config字典中只給出了主機(jī)名秉扑、數(shù)據(jù)庫賬戶名,那么顯然是連接不上數(shù)據(jù)庫的调限,這時候我們?nèi)绻幌朐赾onfig中增加其他參數(shù)的話舟陆,可以將這些參數(shù)寫進(jìn)另一個字典類型的config1對象中,然后按照元組形式的不定長參數(shù)用法耻矮,將config和config1傳到connect()中去秦躯,這樣connect就獲取了一個完整的數(shù)據(jù)庫連接配置文件,從而成功建立起連接裆装,如下圖所示:(mysql依然可以正常連接)
connect()的傳參.jpg
總結(jié):
- 推薦第二種連接方式踱承,簡潔優(yōu)雅;
- 在pymysql中哨免,這三種數(shù)據(jù)庫連接對象是等價的:connect=Connection=Connect茎活,建議使用connect;