添加老师 def add_teacher(request): if request.method == 'GET': #获取班级列表,以完善下拉框的值 sqlhelper.get_list("select id,title from class",[]) return render(request,'add_teacher.html',{'class_list':class_list}) else: #POST方法是提交添加老师的表单处理 name = request.POST.get('name') class_ids = request.POST.getlist('class_ids') #获取多选值得时候使用getlist函数,否则使用get函数 teacher_id = sqlhelper.create("insert into teacher(name) value(%s)',[name,]) obj.sqlhelper.SqlHelper() data_list = [] for cls_id in class_ids: temp = (teacher_id,cls_id,) data_list.append(temp) obj.multiple_modify("insert into techer2class(teacher_id,class_id) values(%s,%s)',data_list) obj.close() return redict('/teacers/') 创建add_teacher.html文件: <h1>添加老师</h1> <form method="POST" action="/add_teacher/"> <p><input type="text" name="name" placeholder="老师姓名" /></p> <p> <select multiple size="10" name="class_ids"> {% for item in class_list %} <option value="{{ item.id }}">{{ item.title }}</option> {% endfor %} </select> </p> <input type="submit" value="提交" /> </form> 重新定义sqlhelper.py def modify(sql,args): conn = pymysql.connect(host,port,user,password,db,charset) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql,args) conn.commit() cursor.close() conn.close() def create(sql,args): conn = pymysql.connect(host,port,user,password,db,charset) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql,args) conn.commit() last_row_id = cursor.lastrowid cursor.close() conn.close() return last_row_id def get_list(sql,args): conn=pymysql.connect(...) cursor = conn.cursor(cursor=pymysql.cursor.DictCursor) cursor.execute(sql,args) result = cursor.fetchall() cursor.close() conn.close() return result def get_one(sql,args): conn = pymysql.connect(...) cursor = conn.cursor(cursor=pymysql.cursor.DictCursor) cursor.execute(sql,args) result = cursor.fetchone() cursor.close() conn.close() return result class SqlHelper((object): def __init__(self): #实例化类对象的时候会自动执行 self.connect() def connect(self): self.conn = pymysql.connect(...) self.cursor = self.conn.cursor(cursor=pymysql.cursor.DictCursor) def get_list(self,sql,args): self.cursor.execute(sql,args) result = self.cursor.fetchall() return result def modify(self,sql,args): self.cursor.execute(sql,args) self.conn.commit() 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(sql,args) self.conn.commit() def close(self): self.cursor.close() self.conn.close() 定义好sqlhelper类后,按照如下方法使用,这样可以避免每次都conn数据库,减少时间和资源消耗。 obj = SqlHelper() obj.multiple_modify() obj.get_list() obj.close()
浙公网安备 33010602011771号