学生表增删改查
views.py
from django.shortcuts import render,HttpResponse,redirect
import pymysql
def classes(request):
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("select id,title from class")
class_list = cursor.fetchall()
cursor.close()
conn.close()
return render(request, 'classes.html', {'class_list': class_list})
def add_class(request):
if request.method == "GET":
return render(request, 'add_class.html')
elif request.method == "POST":
v = request.POST.get("title")
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("insert into class(title) values(%s)", [v,])
conn.commit()
cursor.close()
conn.close()
return redirect('/classes/')
def del_class(request):
nid = request.GET.get('nid')
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("delete from class where id=%s", [nid, ])
conn.commit()
cursor.close()
conn.close()
return redirect('/classes/')
def edit_class(request):
if request.method == "GET":
nid = request.GET.get('nid')
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("select id,title from class where id = %s", [nid, ])
result = cursor.fetchone()
cursor.close()
conn.close()
print(result)
return render(request, 'edit_class.html', {'result': result})
elif request.method == "POST":
nid = request.GET.get('nid')
title = request.POST.get('title')
# print(nid,title)
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("update class set title=%s where id = %s", [title,nid,])
conn.commit()
cursor.close()
conn.close()
return redirect('/classes/')
def students(request):
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("SELECT student.id,student.name,class.title from student LEFT JOIN class on student.class_id=class.id;")
student_list = cursor.fetchall()
cursor.close()
conn.close()
return render(request,'students.html',{'student_list':student_list})
def add_student(request):
if request.method == "GET":
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("SELECT id,title from class;")
class_list = cursor.fetchall()
cursor.close()
conn.close()
return render(request, 'add_student.html', {'class_list': class_list})
else:
class_id=request.POST.get("class_id")
name=request.POST.get("name")
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("insert into student(name,class_id) values(%s,%s)",[name,class_id])
conn.commit()
cursor.close()
conn.close()
return redirect('/students/')
from utils import sqlhelper
def edit_student(request):
if request.method == "GET":
nid = request.GET.get("nid")
class_list = sqlhelper.get_list("select id,title from class",[])
current_student_info=sqlhelper.get_one('select id,name,class_id from student where id=%s',[nid,])
return render(request, 'edit_student.html',{'class_list':class_list,'current_student_info':current_student_info})
else:
nid = request.GET.get("nid")
name = request.POST.get('name')
class_id = request.POST.get('class_id')
sqlhelper.modify('update student set name=%s,class_id=%s where id=%s',[name,class_id,nid,])
return redirect('/students/')
urls.py
"""mysite20180307 URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^classes/', views.classes), url(r'^add_class/', views.add_class), url(r'^del_class/', views.del_class), url(r'^edit_class/', views.edit_class), url(r'^students/', views.students), url(r'^add_student/', views.add_student), url(r'^edit_student/', views.edit_student), ]
edit_student
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h3>编辑学生</h3> <form method="POST" action="/edit_student/?nid={{ current_student_info.id }}"> {# <input type="text" style="display: none" value="{{ result.id }}">#} <p>学生姓名:<input type="text" name="name" value="{{ current_student_info.name }}"></p> <p> 所属班级: <select name="class_id" > {% for row in class_list %} {% if row.id == current_student_info.class_id %} <option selected value="{{ row.id }}">{{ row.title }}</option> {% else %} <option value="{{ row.id }}">{{ row.title }}</option> {% endif %} {% endfor %} </select> </p> <input type="submit" name="提交"> </form> </body> </html>
add_student
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h3>添加学生</h3> <form method="POST" action="/add_student/"> <p>学生名称:<input type="text" name="name"></p> <p> <select name="class_id"> {% for row in class_list %} <option value="{{ row.id }}">{{ row.title }}</option> {% endfor %} </select> </p> <input type="submit" value="提交"> </form> </body> </html>
students
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>学生列表</h1> <div> <a href="/add_student/">添加</a> </div> <table> <thead> <tr> <th>ID</th> <th>学生姓名</th> <th>所属班级</th> <th>操作</th> </tr> </thead> <tbody> {% for row in student_list %} <tr> <td>{{ row.id }}</td> <td>{{ row.name }}</td> <td>{{ row.title }}</td> <td><a href="/del_class/?nid={{ row.id }}">删除</a></td> <td><a href="/edit_student/?nid={{ row.id }}">编辑</a></td> </tr> {% endfor %} </tbody> </table> </body> </html>
sqlhelper
import pymysql def get_list(sql,args): conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql,args) result = cursor.fetchall() cursor.close() conn.close() return result def get_one(sql,args): conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql,args) result = cursor.fetchone() cursor.close() conn.close() return result def modify(sql,args): conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123.com', db='mysite', charset='utf8') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) cursor.execute(sql, args) conn.commit() cursor.close() conn.close()

浙公网安备 33010602011771号