Django3框架學(xué)習(xí)三:創(chuàng)建數(shù)據(jù)庫(kù)、表、pymysql封裝

需要?jiǎng)?chuàng)建的表的結(jié)構(gòu)
# 表1:班級(jí)表        表2:學(xué)生表                表3:老師表           表4:老師班級(jí)關(guān)系表
id  name           id   sname  cid(FK)       id   tname            id   tid(FK)  cid(FK)
1   初三一班         1    小明      1           1    數(shù)學(xué)老師          1        1         1
2   初三二班                                    2    語(yǔ)文老師          2        1         2
                                                                      3        2         2  
使用 Navicat Premium 創(chuàng)建數(shù)據(jù)庫(kù)classProject。創(chuàng)建class表student表teacher表tearcher2class表。創(chuàng)建相應(yīng)表字段名。
  • class表:
    • id 為自增 主鍵
      class表 id 為自增 主鍵
  • student表:
    • id 為自增 主鍵
    • cid 和class表id關(guān)聯(lián)
      student表
  • teacher表:
    • id 為自增 主鍵
      teacher表
  • tearcher2class表:
    • id 為自增 主鍵
    • cid 和class表id關(guān)聯(lián)
    • tid 和tearcher表id關(guān)聯(lián)
      image.png

封裝pymsql方便后續(xù)操作

class SQLHelper(object):

    def __init__(self):
        self.connect()
        
    #連接
    def connect(self):
        self.conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='classProject',
                               charset='utf8')
        self.cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
    #獲取列表
    def get_list(self,sql,args=[]):
        self.cursor.execute(sql, args)
        result = self.cursor.fetchall()
        return result
    #獲取一條
    def get_one(self,sql,args=[]):
        self.cursor.execute(sql, args)
        result = self.cursor.fetchone()
        return result
    #修改,刪除
    def modify(self,sql,args=[]):
        self.cursor.execute(sql, args)
        self.conn.commit()
    #增加并返回新增的id
    def create(self,sql,args=[]):
        self.cursor.execute(sql, args)
        self.conn.commit()
        return  self.cursor.lastrowid
    #批量操作
    def multiple_modify(self,sql,args=[]):
        # self.cursor.executemany('insert into tearch2class(tid, cid) VALUES (%s,%s)',[(1,2),(2,3),(3,5)])
        self.cursor.executemany(sql,args)
        self.conn.commit()
    #關(guān)閉
    def close(self):
        self.cursor.close()
        self.conn.close()

SQLHelper使用方法

obj = SQLHelper()
# 查詢?nèi)堪嗉?jí)列表
class_list = obj.get_list('select id,name from class')
# 新增一條班級(jí)數(shù)據(jù)
obj. modify("insert into class(name) values(%s)", ["初三一班", ])
# 根據(jù)id獲取班級(jí)
class = obj.get_one("select id,name from class where id = %s",[ id,])
# 根據(jù)id修改班級(jí)
obj.modify("update class set name = %s where id = %s", [newName, id, ])
# 新增班級(jí)并返回該新增班級(jí)的id
class_id = obj. create("insert into class(name) values(%s)", ["初三一班", ])
# 刪除班級(jí)
obj.modify("delete from class  where tid = %s", id)
obj.close()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評(píng)論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,538評(píng)論 3 417
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評(píng)論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,761評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,207評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,419評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,959評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,678評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,978評(píng)論 2 374