Django (二)使用 JQuery、Ajax

一、作业内容
1、班级表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用JQuery、Ajax实现。
2、学生表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用Jquery、Ajax实现。
3、教师表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用Jquery、Ajax实现。


1、班级表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用JQuery、Ajax实现。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>班级列表</title> 6{ 7 8 9 # <link rel="stylesheet" href="https://my.oschina.net/static/bootstrap-3.3.7-dist/css/bootstrap.css">#} 10{ 11 12 13 # <link rel="stylesheet" href="https://my.oschina.net/static/font-awesome-4.7.0/css/font-awesome.css">#} 14 <link rel="stylesheet" href="/static/common.css"> 15</head> 16<body> 17<h3>班级列表</h3> 18<div><a id="openAddModal">添加</a></div> 19<table border="1" cellspacing="0"> 20 <thead> 21 <th>ID</th> 22 <th>班级名称</th> 23 <th>操作</th> 24 </thead> 25 <tbody> 26 { 27 28 29 % for item in result %} 30 <tr> 31 <td>{ 32 33 34 { 35 36 37 item.id}}</td> 38 <td>{ 39 40 41 { 42 43 44 item.title}}</td> 45 <td> 46 <a class="openEditModal">编辑</a> 47 | 48 <a class="btnDel">删除</a> 49 </td> 50 </tr> 51 { 52 53 54 % endfor %} 55 </tbody> 56</table> 57 58{ 59 60 61 # 遮罩层 #} 62<div id="shadows" class="shadow hide"></div> 63 64{ 65 66 67 # 添加对话框 #} 68<div id="addModal" class="modal hide"> 69 <h3>添加班级</h3> 70 <p><input type="text" id="add_title_id" placeholder="添加班级"></p> 71 <span id="add_errmsg" style="color:red"></span> 72 <p> 73 <input type="button" id="btnAdd" value="添加"> 74 <input type="button" class="hideModal" value="取消"> 75 </p> 76</div> 77 78{ 79 80 81 # 编辑对话框 #} 82<div id="EditModal" class="modal hide"> 83 <h3>编辑班级</h3> 84 <p><input type="text" id="edit_class_id" style="display:none"></p> 85 <p><input type="text" id="edit_title"></p> 86 <span id="edit_errmsg" style="color:red"></span> 87 <p> 88 <input type="button" value="更新" id="btnedit"> 89 <input type="button" value="取消" class="hideModal"> 90 </p> 91 92</div> 93<script src="/static/jquery-3.4.1.min.js"></script> 94<script> 95 $(function(){ 96 97 98 99 $('#openAddModal').click(function(){ 100 101 102 103 $('#shadows,#addModal').removeClass('hide') 104 }); 105 $('.hideModal').click(function(){ 106 107 108 109 $("#shadows,#addModal,#EditModal").addClass("hide") 110 }); 111 112 $(".openEditModal").click(function(){ 113 114 115 116 $('#shadows,#EditModal').removeClass('hide'); 117 var tds=$(this).parent().prevAll(); 118 var cid=$(tds[1]).text(); 119 var title=$(tds[0]).text(); 120 $("#edit_class_id").val(cid); 121 $("#edit_title").val(title); 122 }); 123 124 $("#btnedit").click(function(){ 125 126 127 128 $.ajax({ 129 130 131 132 url:"{% url "classes:class_updata" %}", 133 type:"post", 134 data:{ 135 136 137 138 "cid":$("#edit_class_id").val(), 139 "title":$("#edit_title").val() 140 }, 141 success:function(args){ 142 143 144 145 args=JSON.parse(args); 146 if(args.status){ 147 148 149 150 location.reload(); 151 }else{ 152 153 154 155 $("#edit_errmsg").text(args.errmsg); 156 } 157 } 158 }) 159 }); 160 161 $(".btnDel").click(function(){ 162 163 164 165 var tds=$(this).parent().prevAll(); 166 var cid=$(tds[1]).text(); 167 $.ajax({ 168 169 170 171 url:"{% url "classes:class_del" %}", 172 type:"post", 173 data:{ 174 175 176 177 "cid":cid 178 }, 179 success:function(args){ 180 181 182 183 args=JSON.parse(args); 184 if(args.status){ 185 186 187 188 location.reload() 189 }else{ 190 191 192 193 alert(args.errmsg) 194 } 195 } 196 }) 197 }); 198 199 $("#btnAdd").click(function(){ 200 201 202 203 $.ajax({ 204 205 206 207 url:"{% url "classes:class_add" %}", 208 type:"post", 209 data:{ 210 211 212 213 "title":$("#add_title_id").val() 214 }, 215 success:function(args){ 216 217 218 219 args=JSON.parse(args); 220 if(args.status){ 221 222 223 224 location.reload(); 225 }else{ 226 227 228 229 $("#add_errmsg").text(args.errmsg); 230 } 231 } 232 }) 233 }); 234 }) 235</script> 236 237 238</body> 239</html> 240 241 242from django.shortcuts import render, HttpResponse, redirect 243from django.views.generic import View 244from apps.utils.sqlhelp import SqlHelper 245import json 246# Create your views here. 247class ClassesView(View): 248 def get(self,request): 249 obj=SqlHelper() 250 sql="select * from class" 251 result=obj.get_list(sql,()) 252 obj.close() 253 return render(request, "class.html", { 254 255 256 "result":result}) 257 258class Class_addf(View): 259 def post(self,request): 260 ret={ 261 262 263 "status":True,"errmsg":None} 264 try: 265 title=request.POST.get("title") 266 if title: 267 obj=SqlHelper() 268 sql="insert into class(title) values(%s)" 269 obj.modify(sql,title) 270 obj.close() 271 else: 272 ret["status"] = False 273 ret["errmsg"] = "班级名称不能为空" 274 except: 275 ret["status"]=False 276 ret["errmsg"]="添加失败" 277 return HttpResponse(json.dumps(ret)) 278 279class Class_delf(View): 280 def post(self,request): 281 ret={ 282 283 284 "status":True,"errmsg":None} 285 try: 286 cid=request.POST.get("cid") 287 obj=SqlHelper() 288 obj.modify("delete from class where id=%s",cid) 289 obj.close() 290 except: 291 ret["status"]=False 292 ret["errmsg"]="删除失败" 293 return HttpResponse(json.dumps(ret)) 294 295class Class_updataf(View): 296 def post(self,request): 297 ret = { 298 299 300 "status": True, "errmsg": None} 301 try: 302 cid=request.POST.get("cid") 303 title = request.POST.get("title") 304 if cid and title: 305 obj = SqlHelper() 306 obj.modify("update class set title=%s where id=%s", (title,cid)) 307 obj.close() 308 print(cid,title) 309 else: 310 ret["status"] = False 311 ret["errmsg"] = "班级不能为空" 312 except: 313 ret["status"] = False 314 ret["errmsg"] = "更新失败" 315 return HttpResponse(json.dumps(ret))

2、学生表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用Jquery、Ajax实现。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>学生列表</title> 6 <link rel="stylesheet" href="/static/common.css"> 7</head> 8<body> 9<h3>学生列表</h3> 10<div><a id="openAddModal">添加</a></div> 11<table border="1"cellspacing="0"> 12 <thead> 13 <td>学生ID</td> 14 <td>学生姓名</td> 15 <td>班级名称</td> 16 <td>操作</td> 17 </thead> 18 <tbody> 19 <tr> 20 { 21 22 23 % for item in result%} 24 <td >{ 25 26 27 { 28 29 30 item.id }}</td> 31 <td>{ 32 33 34 { 35 36 37 item.name }}</td> 38 <td class_id="{ 39 40 41 { item.class_id}}">{ 42 43 44 { 45 46 47 item.title }}</td> 48 <td> 49 <a class="openEditModal">编辑</a> 50 | 51 <a class="btnDel">删除</a> 52 </td> 53 </tr> 54 { 55 56 57 % endfor %} 58 </tbody> 59</table> 60{ 61 62 63 # 遮罩层 #} 64<div id="shadow" class="hide shadow"></div> 65 66{ 67 68 69 # 添加模态框 #} 70<div id="addModal" class="hide modal"> 71 <h3>添加学生</h3> 72 <p><input type="text" id="student_name" placeholder="学生姓名"></p> 73 <span id="errmsg" style="color:red"></span> 74 <p><select id="class_id" size="7"> 75 { 76 77 78 % for item in class_list %} 79 <option value="{ 80 81 82 { item.id }}">{ 83 84 85 { 86 87 88 item.title }}</option> 89 { 90 91 92 % endfor %} 93 </select></p> 94 <p><input type="button" id="btnAdd" value="添加"> 95 <input type="button" class="hideModal" value="取消"></p> 96</div> 97 98{ 99 100 101 # 编辑模态框 #} 102<div id="editModal" class="hide modal"> 103 <p><input type="text" style="display:none" id="edit_student_id"></p> 104 <p><input type="text" id="edit_student_name"></p> 105 <p> 106 <select id="edit_class_id" size="7"> 107 { 108 109 110 % for item in class_list %} 111 <option value="{ 112 113 114 { item.id }}">{ 115 116 117 { 118 119 120 item.title}}</option> 121 { 122 123 124 % endfor %} 125 </select> 126 </p> 127 <span id="Edit_errmsg" style="color:red"></span> 128 <p> 129 <input type="button" id="btnEdit" value="编辑"> 130 <input type="button" class="hideModal" value="取消"> 131 </p> 132</div> 133 134<script src="/static/jquery-3.4.1.min.js"></script> 135<script> 136 $("#openAddModal").click(function(){ 137 138 139 140 $("#shadow,#addModal").removeClass("hide") 141 }); 142 $(".openEditModal").click(function(){ 143 144 145 146 $("#shadow,#editModal").removeClass("hide"); 147 148 var std=$(this).parent().prevAll(); 149 var student_id=$(std[2]).text(); 150 var student_name=$(std[1]).text(); 151 var class_id=$(std[0]).attr("class_id"); 152 153 154 155 $("#edit_student_id").val(student_id); 156 $("#edit_student_name").val(student_name); 157 $("#edit_class_id").val(class_id) 158 159 }); 160 161 $("#btnEdit").click(function(){ 162 163 164 165 var student_id=$("#edit_student_id").val(); 166 var student_name=$("#edit_student_name").val(); 167 var class_id=$("#edit_class_id").val(); 168 console.log(student_id,student_name,class_id); 169 $.ajax({ 170 171 172 173 url:"{% url "students:student_updata" %}", 174 type:"post", 175 data:{ 176 177 178 179 "student_id":student_id, 180 "student_name":student_name, 181 "class_id":class_id 182 }, 183 success:function(args){ 184 185 186 187 args=JSON.parse(args); 188 if(args.status){ 189 190 191 192 location.reload(); 193 }else{ 194 195 196 197 $("#Edit_errmsg").val(args.errmsg); 198 //alert(args.errmsg); 199 } 200 } 201 202 }); 203 }); 204 205 $(".hideModal").click(function(){ 206 207 208 209 $("#shadow,#addModal,#editModal").addClass("hide") 210 }); 211 $("#btnAdd").click(function(){ 212 213 214 215 var student_name=$("#student_name").val(); 216 var class_id=$("#class_id").val(); 217 $.ajax({ 218 219 220 221 url:"{% url "students:student_add" %}", 222 type:"post", 223 data:{ 224 225 226 227 "student_name":student_name, 228 "student_class":class_id 229 }, 230 success:function(args){ 231 232 233 234 args=JSON.parse(args); 235 if(args.status) { 236 237 238 239 location.reload(); 240 } else{ 241 242 243 244 $("#errmsg").text(args.errmsg); 245 } 246 }}) 247 }); 248 $(".btnDel").click(function(){ 249 250 251 252 var std=$(this).parent().prevAll() 253 var cid=$(std[2]).text() 254 $.ajax({ 255 256 257 258 url:"{% url "students:student_del" %}", 259 type:"post", 260 data:{ 261 262 263 264 "student_id":cid 265 }, 266 success:function(args){ 267 268 269 270 args=JSON.parse(args); 271 if(args.status){ 272 273 274 275 location.reload(); 276 }else{ 277 278 279 280 alert(args.errmsg) 281 } 282 } 283 }) 284 }); 285 286</script> 287</body> 288</html> 289 290 291from django.shortcuts import render, HttpResponse, redirect 292from django.views.generic import View 293from apps.utils.sqlhelp import SqlHelper 294import json 295 296class Students(View): 297 def get(self,request): 298 obj=SqlHelper() 299 sql="select student.id,name,title ,student.class_id from class,student where class_id=class.id" 300 result=obj.get_list(sql,()) 301 sql = "select * from class" 302 sql = "select * from class" 303 class_list = obj.get_list(sql, ()) 304 obj.close() 305 return render(request, "student_class.html", { 306 307 308 "result": result,"class_list":class_list}) 309 310class Student_addf(View): 311 def post(self,request): 312 ret={ 313 314 315 "status":True,"errmsg":None} 316 try: 317 student_name=request.POST.get("student_name") 318 cid=request.POST.get("student_class") 319 if student_name and cid: 320 obj = SqlHelper() 321 sql1 = "insert into student(name,class_id) values(%s,%s)" 322 obj.modify(sql1,(student_name,cid)) 323 obj.close() 324 else: 325 ret["status"] = False 326 ret["errmsg"] = "名字和班级不能为空" 327 except: 328 ret["status"]=False 329 ret["errmsg"]="添加失败" 330 return HttpResponse(json.dumps(ret)) 331 332class Student_delf(View): 333 def post(self,request): 334 print("7"*40) 335 ret={ 336 337 338 "status":True,"errmsg":None} 339 try: 340 student_id=request.POST.get("student_id") 341 print(student_id) 342 obj=SqlHelper() 343 obj.modify("delete from student where id=%s",student_id) 344 obj.close() 345 except: 346 ret["status"]=False 347 ret["errmsg"]="删除失败" 348 return HttpResponse(json.dumps(ret)) 349 350class Student_updataf(View): 351 def post(self,request): 352 ret={ 353 354 355 "status":True,"errmsg":None} 356 try: 357 student_id = request.POST.get("student_id") 358 student_name = request.POST.get("student_name") 359 cid=request.POST.get("class_id") 360 print("*"*50) 361 print(student_id,student_name,cid) 362 if student_id and student_name and cid: 363 obj = SqlHelper() 364 obj.modify("update student set name=%s,class_id=%s where id=%s", (student_name,cid,student_id)) 365 obj.close() 366 else: 367 ret["status"] = False 368 ret["errmsg"] = "填写内容不能为空" 369 except: 370 ret["status"]=False 371 ret["errmsg"]="编辑失败" 372 return HttpResponse(json.dumps(ret))

3、教师表的操作,包括增加、编辑、删除。要求(1)增加、编辑,弹出对话框;(2)这些操作用Jquery、Ajax实现。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <title>教师列表</title> 6 <link rel="stylesheet" href="/static/common.css"> 7</head> 8<body> 9<h3>教师列表</h3> 10<div><a id="openAddTeacher">添加</a></div> 11<table border="1" cellspacing="0"> 12 <thead> 13 <tr> 14 <td>ID</td> 15 <td>教师姓名</td> 16 <td>任教班级</td> 17 <td>操作</td> 18 </tr> 19 </thead> 20 <tbody> 21 { 22 23 24 % for item in result %} 25 <tr> 26 <td>{ 27 28 29 { 30 31 32 item.id }}</td> 33 <td>{ 34 35 36 { 37 38 39 item.name }}</td> 40 <td> 41 { 42 43 44 % for title in item.titles %} 45 <span style="display:inline-block;padding:5px;border:1px solid red">{ 46 47 48 { 49 50 51 title }}</span> 52 { 53 54 55 % endfor %} 56 </td> 57 <td> 58 <a class="openEditModal">编辑</a> 59 <a class="btnDel">删除</a> 60 </td> 61 </tr> 62 { 63 64 65 % endfor %} 66 </tbody> 67</table> 68 69<div id="shadow" class="shadow hide"></div> 70 71<div id="AddModal" class="modal hide"> 72 <h3>增加老师</h3> 73 <p><input type="text" placeholder="教师姓名" id="add_teacher_name"></p> 74 <p><select id="add_cids" multiple size="7"> 75 { 76 77 78 % for item in class_list %} 79 <option value="{ 80 81 82 { item.id }}">{ 83 84 85 { 86 87 88 item.title }}</option> 89 { 90 91 92 % endfor %} 93 </select></p> 94 <span id="add_errmsg"></span> 95 <p><input type="button" value="添加" id="btnAdd"> 96 <input type="button" value="取消" class="hideModal"> 97 </p> 98</div> 99 100<div id="EditModal" class="modal hide"> 101 <h3>编辑教师</h3> 102 <p><input style="display:none" type="text" id="edit_teacher_id" value="{ 103 104 105 { teacher_id}}"></p> 106 <p><input type="text" id="edit_teacher_name" value="{ 107 108 109 { teacher_name }}"></p> 110 <p><select id="edit_teacher_classes" multiple size="7"> 111 { 112 113 114 % for item in class_list %} 115 <option value="{ 116 117 118 { item.id }}">{ 119 120 121 { 122 123 124 item.title }}</option> 125 { 126 127 128 % endfor %} 129 </select></p> 130 <span id="edit_errmsg"></span> 131 <p><input type="button" value="更新" id="btnEdit"> 132 <input type="button" value="取消" class="hideModal"></p> 133</div> 134 135<script src="/static/jquery-3.4.1.min.js"></script> 136<script> 137 138 $("#openAddTeacher").click(function(){ 139 140 141 142 $("#AddModal,#shadow").removeClass("hide") 143 }); 144 $(".openEditModal").click(function(){ 145 146 147 148 $("#EditModal,#shadow").removeClass("hide"); 149 150 var std=$(this).parent().prevAll(); 151 var teacher_id=$(std[2]).text(); 152 var teacher_name=$(std[1]).text(); 153 var teacher_classes=$(std[0]).text(); 154 155 $("#edit_teacher_id").val(teacher_id); 156 $("#edit_teacher_name").val(teacher_name); 157 158 $("#edit_teacher_classes option").each(function(){ 159 160 161 162 console.log(txt); 163 var txt=$(this).text(); 164 if(teacher_classes.indexOf(txt)!=-1){ 165 166 167 168 $(this).attr("selected",true); 169 } else{ 170 171 172 173 $(this).attr("selected",false); 174 } 175 }); 176 177 }); 178 $(".hideModal").click(function(){ 179 180 181 182 $("#AddModal,#shadow,#EditModal").addClass("hide") 183 }); 184 185 $("#btnEdit").click(function(){ 186 187 188 189 var teacher_id=$("#edit_teacher_id").val(); 190 var teacher_name=$("#edit_teacher_name").val(); 191 var teacher_classes=$("#edit_teacher_classes").val(); 192 console.log(teacher_id,teacher_name,teacher_classes) 193 $.ajax({ 194 195 196 197 url:"{% url "teachers:teacher_updata" %}", 198 type:"post", 199 traditional:true, 200 data:{ 201 202 203 204 "teacher_id":teacher_id, 205 "teacher_name":teacher_name, 206 "teacher_classes":teacher_classes 207 }, 208 success:function(args){ 209 210 211 212 args=JSON.parse(args); 213 if(args.status){ 214 215 216 217 location.reload(); 218 }else{ 219 220 221 222 $("#edit_errmsg").text(args.errmsg); 223 } 224 225 } 226 }) 227 }); 228 229 $("#btnAdd").click(function(){ 230 231 232 233 var teacher_name=$("#add_teacher_name").val(); 234 var class_ids=$("#add_cids").val(); 235 console.log(teacher_name,class_ids); 236 237 $.ajax({ 238 239 240 241 url:"{% url "teachers:teacher_add" %}", 242 type:"post", 243 traditional:true, 244 data:{ 245 246 247 248 "teacher_name":teacher_name, 249 "class_ids":class_ids 250 }, 251 success:function(args){ 252 253 254 255 args=JSON.parse(args); 256 if(args.status){ 257 258 259 260 location.reload(); 261 }else{ 262 263 264 265 $("#add_errmsg").text(args.errmsg) 266 } 267 } 268 }); 269 }); 270 271 $(".btnDel").click(function(){ 272 273 274 275 var std=$(this).parent().prevAll(); 276 var teacher_id=$(std[2]).text(); 277 console.log("*********"); 278 console.log(teacher_id); 279 $.ajax({ 280 281 282 283 url:"{% url "teachers:teacher_del" %}", 284 type:"post", 285 data:{ 286 287 288 289 "teacher_id":teacher_id 290 }, 291 success:function(args){ 292 293 294 295 args=JSON.parse(args); 296 if(args.status){ 297 298 299 300 location.reload(); 301 }else{ 302 303 304 305 alert(args.errmsg); 306 } 307 } 308 }) 309 }); 310 311 312</script> 313 314</body> 315</html> 316 317 318from django.shortcuts import render,HttpResponse,redirect 319from apps.utils.sqlhelp import SqlHelper 320from django.views.generic import View 321import json 322# Create your views here. 323 324class Teachers(View): 325 def get(self,request): 326 obj=SqlHelper() 327 sql=""" 328 select teacher.id,teacher.name,class.title from teacher 329 left JOIN teacher2class on teacher.id=teacher2class.teacher_id 330 left JOIN class on teacher2class.class_id=class.id 331 """ 332 result=obj.get_list(sql,()) 333 dic={ 334 335 336 } 337 for item in result: 338 if item["id"] in dic: 339 dic[item["id"]]["titles"].append(item["title"]) 340 else: 341 dic[item["id"]]={ 342 343 344 "id":item["id"],"name":item["name"],"titles":[item["title"]]} 345 result=dic.values() 346 347 class_list=obj.get_list("select * from class",()) 348 obj.close() 349 return render(request,"teachers.html",{ 350 351 352 "result":result,"class_list":class_list}) 353 354class Teacher_addf(View): 355 def post(self,request): 356 ret={ 357 358 359 "status":True,"errmsg":None} 360 try: 361 teacher_name=request.POST.get("teacher_name") 362 teacher_class=request.POST.getlist("class_ids") 363 print(teacher_name,teacher_class) 364 365 if teacher_name and teacher_class: 366 obj=SqlHelper() 367 sql="insert into teacher(name) values(%s)" 368 tid=obj.create(sql,teacher_name) 369 sql="insert into teacher2class(teacher_id,class_id) values(%s,%s)" 370 lst=[(tid,item) for item in teacher_class] 371 obj.modify_many(sql,lst) 372 else: 373 ret["status"] = False 374 ret["errmsg"] = "填写内容不能为空" 375 except: 376 ret["status"]=False 377 ret["errmsg"]="教师添加失败" 378 return HttpResponse(json.dumps(ret)) 379 380 381class Teacher_delf(View): 382 def post(self,request): 383 ret={ 384 385 386 "status":True,"errmsg":None} 387 try: 388 tid=request.POST.get("teacher_id") 389 obj=SqlHelper() 390 sql="delete from teacher where teacher.id=%s" 391 obj.modify(sql,tid) 392 sql="delete from teacher2class where teacher_id=%s" 393 obj.modify(sql, tid) 394 except: 395 ret["status"]=False 396 ret["errmsg"]="删除失败" 397 return HttpResponse(json.dumps(ret)) 398 399class Teacher_updataf(View): 400 def post(self,request): 401 ret={ 402 403 404 "status":True,"errmsg":None} 405 try: 406 teacher_id=request.POST.get("teacher_id") 407 teacher_name = request.POST.get("teacher_name") 408 teacher_classes=request.POST.getlist("teacher_classes") 409 print(teacher_id,teacher_name,teacher_classes) 410 if teacher_id and teacher_name and teacher_classes: 411 obj=SqlHelper() 412 sql="update teacher set name=%s where id=%s" 413 obj.modify(sql,(teacher_name,teacher_id)) 414 415 sql="delete from teacher2class where teacher_id=%s" 416 obj.modify(sql,teacher_id) 417 418 sql = "insert into teacher2class(teacher_id,class_id) values(%s,%s)" 419 lst = [(teacher_id, item) for item in teacher_classes] 420 obj.modify_many(sql, lst) 421 else: 422 ret["status"] = False 423 ret["errmsg"] = "填写内容不能为空" 424 except: 425 ret["status"]=False 426 ret["errmsg"]="编辑失败" 427 return HttpResponse(json.dumps(ret))

本文同步分享在 博客“战 胜”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

Django (二)使用 JQuery、Ajax - HelloWorld