Python Day 55 Django框架

  ##MySQL数据准备

#班级表
create table classes(
    id int auto_increment primary key,
    name varchar(32) not null default ''
)engine=Innodb charset=utf8;
#学生表
create table student(
    id int auto_increment primary key,
    name varchar(32) not null default '',
    class_id int not null default 1,
    constraint fk_student_classes foreign key(class_id) references classes(id)
)engine=Innodb charset=utf8;

#教师表
create table teacher(
    id int auto_increment primary key,
    name varchar(32) not null default ''
)engine=Innodb charset=utf8;
#关联表
create table teacher2class(
    id int auto_increment primary key,
    t_id int not null default 1,
    c_id int not null default 1,
    constraint fk_teacher_classes1 foreign key(t_id) references teacher(id),
    constraint fk_classes foreign key(c_id) references classes(id)
)engine=Innodb charset=utf8;

  ##数据库封装成类

为了提高数据库的操作速度,避免重复的进入和退出,我们可以把一些常用的数据库的操作封装成一个类。

把数据库操作写成函数:每次都得连接数据库一次连接一次提交,重复操作浪费时间

把数据库操作写成类:一次连接可以多次提交,最佳重复操作时不需要关闭数据库

import pymysql
class Sqlmanager:
    def __init__(self):
        self.connect() #实例化后自动执行此函数
    def connect(self):#此时进入数据库,游标也已经就绪
        self.conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='123',db='db58',charset='utf8')
        self.cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
    def get_all(self,sql,args=None):
        self.cursor.execute(sql,args)
        result = self.cursor.fetchall()
        return result
    def get_one(self,sql,args=None):
        self.cursor.execute(sql, args)
        result = self.cursor.fetchone()
        return result
    def add_num(self,sql,args=None):
        self.cursor.execute(sql, args)
        self.conn.commit()
    def del_num(self,sql,args=None):
        self.cursor.execute(sql,args)
        self.conn.commit()
    def up_num(self,sql,args=None):
        self.cursor.execute(sql, args)
        self.conn.commit()

   ##Django框架 单表操作细节(班级表和教师表)

#两种方式增删改查
1、新url的方式:
     该方式通过前端不同的请求有不同的url来进行操作
2、模态对话框的方式:
    利用ajax不刷新页面方式进行操作

猜你喜欢

转载自www.cnblogs.com/liangzhenghong/p/11166839.html