一、技术准备:
模板(template)包含、继承与 {% block %} 的用法
1、%include %} 标签
在项目的开发过程中,有很多页面的某些内容都是一样的,比如页面的导航条,页脚的部分,在每个页面都是一样的,我们 将相同的代码,抽出来,使用时用{% include %}标签。
2、{% extends "main.html" %} 的意思是继承 main.html页面的代码,使用继承方法的话,这个代码一定要放页面的第一行。
3、代码{% block xxx %}{% endblock %} 里的xxx可以自由命名,这个代码意思是告诉模板引擎:这个位置我要预留给别人放东西的。这个部分子模板可以重载,每个{% block%}标签所要做的是告诉模板引擎,该模板下的这一块内容将有可能被子模板覆盖。
二、具体步骤如下:
第一步:前端技术加强-html模板应用
1、建立navbar.html文件,是导航条
2、建立main..html,主页,包括导航和不同的块,等子模板覆盖。
3、建立home.html,继承主页,把预留的块填写上自己的内容
4、建立room.html文件,同上。
5、响应views.py添加
def home(request):
returnrender(request,"home.html",context)
def room(request):
return render(request,"room.html")
第二步:通过url中参数传递进入不同页面
总结:从后端通过响应往前端页面传递数据使用【返回值】 render(,,context)
从前端通过url参数/ —->对应的方法的【入参】 room(request,pk)
1、urls.py
path('room/<str:pk>/',views.room,name=‘room')
2、views.py
defroom(request,pk):
3、home.html
{% for room in rooms %}
<h3>{{room.id}} --<ahref="/room/{{room.id}}">{{room.title}}</a></h3>
{% endfor %}
4、获取所有的数据包括id,并改为Article类(显示文章)views.py中
rooms = models.Article.objects./all()