1.创建django项目命令:django-admin startproject 项目名
2.创建子应用:python manage.py startapp
3.运行django项目:python manage.py runserver
4.创建超级用户:python manage.py createsuperuser
5.生成迁移文件:python manage.py makemigrations
6.执行前移: python manage.py migrate
7.运行shell工具: python manage.py shell
from django.db import models
# Create your models here.
# 老师模型类
class Teacher(models.Model):
tea_name = models.CharField(max_length=20,verbose_name='老师姓名')
course = models.CharField(max_length=20,verbose_name='课程')
class Meta:
verbose_name = '老师表'
verbose_name_plural = verbose_name
db_table = 'teacher'
def __str__(self):
return self.tea_name
# 学生模型类
class Student(models.Model):
stu_name = models.CharField(max_length=20, verbose_name='学生姓名')
height = models.DecimalField(max_digits=5,decimal_places=2,verbose_name='身高')
face = models.IntegerField(default=60,verbose_name='颜值')
teacher = models.ForeignKey(to=Teacher,on_delete=models.CASCADE,verbose_name='老师')
class Meta:
verbose_name = '学生表'
verbose_name_plural = verbose_name # admin页面中表的名字(复数)
db_table = 'student' # 在数据库中表的名字
def __str__(self): # 直接输出对象是,输出对象的名字
return self.stu_name
admin注册
from django.contrib import admin from students.models import Teacher,Student # Register your models here. admin.site.register(Teacher) admin.site.register(Student)Views视图层代码
from django.shortcuts import render,redirect
from django.views import View
from students.models import Teacher,Student
from django.http import HttpResponse
# Create your views here.
# 展示所有的老师信息
class TeacherView(View):
def get(self,request):
teachers = Teacher.objects.all()
return render(request,'teachers.html',{'teachers':teachers})
class StudentView(View):
def get(self,request,id):
# id:老师的编号
# 根据id老师编号获取对应的学生信息
students = Student.objects.filter(teacher_id=id)
return render(request,'students.html',{'students':students})
# 根据id 删除学生信息
class DelStudentView(View):
def get(self,request,id):
# # 1.删除数据,重定向到老师页面
# Student.objects.filter(id=id).delete()
# return redirect('/tea/')
# 2..删除数据,重定向到学生页面
student_data = Student.objects.get(id=id)
# 获取老师id.用于重定向
tea_id = student_data.teacher_id
student_data.delete()
return redirect(f'/stu/{tea_id}/')
# 修改学生信息
class UpdateStudentView(View):
# 获取页面
def get(self,request,id):
try:
student_data = Student.objects.get(id=id)
except Exception as e:
print(e)
return HttpResponse('要修改的数据不存在')
return render(request,'index.html',{'student':student_data})
# 根据id修改学生信息
def post(self,request,id):
name = request.POST.get('name')
height = request.POST.get('height')
face = request.POST.get('face')
teacher = request.POST.get('teacher')
try:
Student.objects.filter(id=id).update(
stu_name=name,
height=height,
face=face,
teacher=teacher,
)
except Exception as e:
print(e)
return HttpResponse('修改数据失败')
return redirect('/tea/')
配置路由
from django.urls import path
from students import views
urlpatterns = [
path('tea/',views.TeacherView.as_view()),
path('stu//',views.StudentView.as_view()),
path('delstu//',views.DelStudentView.as_view()),
path('updatestu//',views.UpdateStudentView.as_view()),
]
教师页面
老师页面
| 编号 | 老师姓名 | 所授课程 |
|---|---|---|
| {{ teacher.id }} | { teacher.id }}">{{ teacher.tea_name }} | {{ teacher.course }} |
学生页面
| 编号 | 学生姓名 | 身高 | 颜值 | 授课老师 | 操作 |
|---|---|---|---|---|---|
| {{ student.id }} | {{ student.stu_name }} | {{ student.height }} | {{ student.face }} | {{ student.teacher }} | { student.id }}/">删除 { student.id }}/">修改 |
修改学生信息



