
在model.py里添加模型类,增加外键,并生成迁移,运行迁移。
from django.db import models
# Create your models here.
class Major(models.Model):
major_name = models.CharField(max_length=20,verbose_name='专业名')
class Meta:
verbose_name = '专业表'
verbose_name_plural = verbose_name
db_table = 'major'
def __str__(self):
return self.major_name
class Student(models.Model):
stu_name = models.CharField(max_length=20,verbose_name='姓名')
score = models.IntegerField(verbose_name='成绩')
sex = models.CharField(max_length=3,verbose_name='性别')
#增加外键
major = models.ForeignKey(Major,on_delete=models.CASCADE,verbose_name='专业编号')
class Meta:
verbose_name = '学生表'
verbose_name_plural = verbose_name
db_table = 'student'
def __str__(self):
return self.stu_name
在admin.py里注册模型类。注册超级用户,并增加数据
from django.contrib import admin
from student.models import Major,Student
# Register your models here.
admin.site.register(Major)
admin.site.register(Student)
# 终端里注册超级用户
python manage.py createsuperuser
展示页面
展示专业页面
Views.py
class MajorView(View):
def get(self,request):
major_data = Major.objects.all()
content = {
'majors' : major_data
}
return render(request,'major.html',content)
注册路由在urls.py
from django.urls import path
from student import views
urlpatterns = [
path('major/',views.MajorView.as_view()),
]
展示页面
Title
专业表
编号
专业名称
{% for major in majors %}
{{ major.id }}
{ major.id }}/">{{ major.major_name }}
{% endfor %}
展示学生页面
class StudentView(View):
def get(self,request,id):
student_data = Student.objects.filter(major_id = id)
content = {
'students' : student_data
}
return render(request,'student.html',content)
注册路由在urls.py
from django.urls import path
from student import views
urlpatterns = [
path('student//',views.StudentView.as_view()),
]
展示页面
Title
学生表
编号
姓名
成绩
性别
专业编号
*** 作
{% for student in students %}
{{ student.id }}
{{ student.stu_name }}
{{ student.score }}
{{ student.sex }}
{{ student.major }}
{ student.id }}/">删除
{ student.id }}/">修改
{% endfor %}
进行增删改查 *** 作
增加
可以在专业页面下边写post方法
def post(self,request):
name = request.POST.get('name')
score = request.POST.get('score')
sex = request.POST.get('sex')
major = request.POST.get('major')
try:
Student.objects.create(
stu_name = name,
score = score,
sex = sex,
major_id = major
)
except Exception as e:
print(e)
return HttpResponse('添加失败')
return redirect('/major/')
在专业页面下边写添加表单
删除
class DeleteView(View):
def get(self,request,id):
Student.objects.filter(id=id).delete()
return redirect('/major/')
注册动态路由
from django.urls import path
from student import views
urlpatterns = [
path('delete//',views.DeleteView.as_view()),
]
在学生页面后边增加删除 *** 作
{ student.id }}/">删除
修改
class UpdateView(View):
def get(self,request,id):
try:
student_data = Student.objects.get(id = id)
content = {
'students' : student_data
}
except Exception as e:
print(e)
return HttpResponse('获取数据失败')
return render(request,'update.html',content)
def post(self,request,id):
name = request.POST.get('name')
score = request.POST.get('score')
sex = request.POST.get('sex')
major = request.POST.get('major')
try:
Student.objects.filter(id=id).update(
stu_name = name,
score = score,
sex = sex,
major = major
)
except Exception as e:
print(e)
return HttpResponse('修改失败')
return redirect('/major/')
注册动态路由
from django.urls import path
from student import views
urlpatterns = [
path('update//',views.UpdateView.as_view())
]
在学生页面后边增加删除 *** 作
{ student.id }}/">修改
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)