1.创建模板目录
-
在项目下创建一个目录名为:templates
创建目录后需要首先在settings.py文件中修改TEMPLATES 下的’DIRS’参数**settings.py** TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'templates')], 'APP_DIRS': True, .... } ]
-
在templates下创建一个应用目录,如polls
-
在polls下创建一个html文件,如grades.html
**grades.html** <h1>班级信息</h1> <ul> {%for grade in grades%} <li> <a href="#">{{grade.gname}}</a> </li> {%endfor%} </ul>
2.定义视图
from django.shortcuts import render
from .models import Grades,Students
def grades(request):
#去模板里取数据
gradesList = Grades.objects.all()
#将数据传递给模板,模板再渲染页面,将渲染好的代码返回给浏览器
return render(request,'polls/grades.html',{"grades":gradesList})
3.配置URL
from django.urls import path
from . import views
urlpatterns = [
path('',views.index), #连接地址后缀不需要输入任何字符即可返回views.index的内容
path('<int:num>/<int:num2>/',views.detail),
path('grades/',views.grades),
path('students/',views.students),
]
4.页面访问
http://127.0.0.1:8000/grades/
5.访问关联连接(如:访问班级下学生信息)
**grades.html将href后改成*{{grade.id}}*
<h1>班级信息</h1>
<ul>
{%for grade in grades%}
<li>
<a href="{{grade.id}}">{{grade.gname}}</a>
</li>
{%endfor%}
</ul>
**views.py新增函数**
def gradeStudent(request,num):
#获得对应的班级对象
grade = Grades.objects.get(pk=num)
#获得班级下的所有学生对象列表
studentsList = grade.students_set.all()
return render(request,'polls/students.html',{"students":studentsList})
**urls.py新增url**
path('grades/<int:num>/',views.gradeStudent)
点击对应班级,url可跳转对应ID位置