功能:点击班级获取对应班级里面的学生
1.myapp/urls.py
from django.contrib import admin
from django.conf.urls import url, include, re_path
from django.urls import path
from .views import *
urlpatterns = [
path('index/', hello),
path('grades/', grades),
re_path('grades/(\d+)/', gradesStudents),
path('students/', students),
re_path('(\d+)/', detail), # 正则表达式要用re_path
]
2.myapp/views.py
from django.shortcuts import render
# Create your views here.
from django.shortcuts import HttpResponse
from .models import *
def hello(request):
return HttpResponse("hello world")
# 接收网页上传过来的索引
def detail(request, num):
return HttpResponse("detail.....%s" % num)
def grades(request):
gradesList = Grades.objects.all()
# 模板路径:'myapp/grades.html' 传递的数据{'grades': gradesList} 其中key为模板里面用的变量
return render(request, 'myapp/grades.html', {'grades': gradesList})
def students(request):
studentsList = Students.objects.all()
return render(request, 'myapp/students.html', {'students': studentsList})
def gradesStudents(request, id):
# 通过班级ID获取班级对象
grade = Grades.objects.get(pk = id)
# 通过班级查询出所有学生信息
studentsList = grade.students_set.all()
return render(request, 'myapp/students.html', {'students': studentsList})
3.templates/myapp/grades.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>班级信息</title>
</head>
<body>
<h1>班级</h1>
<ul>
<!--grades是传过来的变量-->
{%for grade in grades%}
<li>
<a href="{{grade.id}}"> {{grade.gname}}</a>
</li>
{%endfor%}
</ul>
</body>
</html>