Django3框架学习三:创建数据库、表、pymysql封装

需要创建的表的结构
# 表1:班级表        表2:学生表                表3:老师表           表4:老师班级关系表
id  name           id   sname  cid(FK)       id   tname            id   tid(FK)  cid(FK)
1   初三一班         1    小明      1           1    数学老师          1        1         1
2   初三二班                                    2    语文老师          2        1         2
                                                                      3        2         2  
使用 Navicat Premium 创建数据库classProject。创建class表student表teacher表tearcher2class表。创建相应表字段名。
  • class表:
    • id 为自增 主键
      class表 id 为自增 主键
  • student表:
    • id 为自增 主键
    • cid 和class表id关联
      student表
  • teacher表:
    • id 为自增 主键
      teacher表
  • tearcher2class表:
    • id 为自增 主键
    • cid 和class表id关联
    • tid 和tearcher表id关联
      image.png

封装pymsql方便后续操作

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()
    #关闭
    def close(self):
        self.cursor.close()
        self.conn.close()

SQLHelper使用方法

obj = SQLHelper()
# 查询全部班级列表
class_list = obj.get_list('select id,name from class')
# 新增一条班级数据
obj. modify("insert into class(name) values(%s)", ["初三一班", ])
# 根据id获取班级
class = obj.get_one("select id,name from class where id = %s",[ id,])
# 根据id修改班级
obj.modify("update class set name = %s where id = %s", [newName, id, ])
# 新增班级并返回该新增班级的id
class_id = obj. create("insert into class(name) values(%s)", ["初三一班", ])
# 删除班级
obj.modify("delete from class  where tid = %s", id)
obj.close()

你可能感兴趣的:(Django3框架学习三:创建数据库、表、pymysql封装)