部分核心代码
- 视图文件
from django.shortcuts import render
from django.shortcuts import HttpResponse
from Student import models
from django.db.models import Q
from Student.models import Student
# Create your views here.
# 主页显示所有学生的信息
def showAll(request):
students = Student.objects.all()
count = students.__len__()
return render(request, "index.html", context={"students": students, "count": count})
# 根据首页输入框模糊查询
def findStudent(request):
str = request.POST.get("str")
students = models.Student.objects.filter(
Q(sname__icontains=str) | Q(ssex__icontains=str))
count = students.__len__()
return render(request, "index.html", context={"students": students, "count": count})
# 添加学生
def addStudent(request):
if request.method == "GET":
return render(request, "add.html")
elif request.method == 'POST':
sname = request.POST.get("sname")
ssex = request.POST.get("ssex")
sage = request.POST.get("sage")
Student.objects.create(sname=sname, ssex=ssex, sage=sage)
students = Student.objects.all()
count = students.__len__()
return render(request, "index.html", context={"students": students, "count": count})
# 修改学生
def updateStudent(request, stu_id):
# 根据表单提交的方式判断是查询单个还是修改之后提交数据库
if request.method == "GET":
student = Student.objects.get(sid=stu_id)
return render(request, "update.html", context={"student": student})
# 表单提交,进行修改学生
elif request.method == 'POST':
# 获取需要修改的学生对象的信息
update_sid = request.POST.get("sid")
update_sname = request.POST.get("sname")
update_ssex = request.POST.get("ssex")
update_sage = request.POST.get("sage")
update_student = Student.objects.filter(sid=update_sid)
update_student.update(sname=update_sname, ssex=update_ssex, sage=update_sage)
students = Student.objects.all()
count = students.__len__()
return render(request, "index.html", context={"students": students, "count": count})
# 删除学生
def deleteStudent(request, stu_id):
stu = Student.objects.filter(sid=stu_id) # 必须是filter如果是get则不行只能获取 模型名字加objects加方法filter
if stu:
stu.delete() # 删除文章
students = Student.objects.all()
count = students.__len__()
return render(request, "index.html", context={"students": students, "count": count})
else:
return HttpResponse('该文章不存在,无法删除!')
模型文件
from django.db import models
# Create your models here.
class Student(models.Model):
sid = models.AutoField(primary_key=True)
sname = models.CharField(max_length=255, blank=True, null=True, verbose_name='姓名')
ssex = models.CharField(max_length=255, blank=True, null=True, verbose_name='性别')
sage = models.IntegerField(blank=True, null=True, verbose_name='年龄')
class Meta:
db_table = 'student'
verbose_name = '学生'
verbose_name_plural = verbose_name