github:https://github.com/mouday/PyThink 說(shuō)下這個(gè) 背景: 而且有一個(gè)專門的DBA管理數(shù)據(jù)庫(kù),就是說(shuō),這個(gè)數(shù)據(jù)庫(kù)不是你一個(gè)人的,有同組的成員和其他組的成員在使用,好像大部分公司都一樣。 Python爬蟲(chóng)部分的業(yè)務(wù),主要操作是插入;而PHP業(yè)務(wù)主要是查詢 最開(kāi)始我使用普通的模塊 import pymysql 后來(lái)使用了peewee 來(lái)管理數(shù)據(jù)庫(kù)鏈接,使用Model來(lái)創(chuàng)建數(shù)據(jù)庫(kù)(這個(gè)時(shí)候還沒(méi)有人管理數(shù)據(jù)庫(kù)),簡(jiǎn)直不要太爽,不寫(xiě)一行SQL語(yǔ)句就實(shí)現(xiàn)了表創(chuàng)建,和數(shù)據(jù)操作; 后來(lái)我這邊的表太多了,業(yè)務(wù)發(fā)展也規(guī)范了,專門有人管理數(shù)據(jù)庫(kù)。這樣就不能使用Model直接建表,而是要寫(xiě)成sql語(yǔ)句給數(shù)據(jù)庫(kù)管理人員,審核完后再進(jìn)行建表操作
在這種情況下,如果使用Model就必須先寫(xiě)sql建表,再把所有字段定義寫(xiě)出來(lái)才可以使用,如果涉及的表字段少還好,有時(shí)候涉及100多個(gè)字段(真的有過(guò)),那光是定義就一上午,Model的優(yōu)勢(shì)反而成了累贅,心累; 于是我開(kāi)始不用Model了,直接使用peewee 提供execute_sql 這樣我們又回到了原生sql的時(shí)代; db.execute_sql('insert into student(name, age) values ('Tom', 24)') 一般情況下,會(huì)將sql執(zhí)行的語(yǔ)句和結(jié)果封裝到一個(gè)函數(shù)中。寫(xiě)的多了,發(fā)現(xiàn)很多重復(fù)代碼,除了sql不一樣以外,其他格式基本一致。于是需要抽象出來(lái),將相同代碼抽象封裝,以便復(fù)用。 于是pythink 出現(xiàn)了,結(jié)合了peewee 的操作方式,也保留了一部分原生sql 的格式,比如,增(insert)、刪(delete)、改(update)、查(select)基本保留了sql的關(guān)鍵字,不需要額外記憶和區(qū)別,而且可以把對(duì)表的操作單獨(dú)卸載model中,進(jìn)行統(tǒng)一管理,也可以重寫(xiě)基類的方法,自己實(shí)現(xiàn)自己的業(yè)務(wù)邏輯(不建議,建議取一個(gè)不一樣的函數(shù)名字)。 一起感受下其如絲般順滑的操作 安裝
代碼示例 mysql> use demo;
當(dāng)然還可以進(jìn)行各種增刪改查,不過(guò)還處于測(cè)試階段,如果用于正式項(xiàng)目還要注意其執(zhí)行的結(jié)果 (完) 看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多人 關(guān)注「Python那些事」,做全棧開(kāi)發(fā)工程師
|
|
來(lái)自: CharlseShan > 《IT》