模板标签及模板的继承与引用
模板标签及模板的继承与引用
一、模板标签
定义:标签在渲染的过程中提供任意的逻辑
语法:由 {% %} 来定义的
例:1、循环列表数据
2、如果要判断性别是女的,背影色为黄色,否则为红色
3、如果要加序号
4、如果电话号码为空时,显示未填
{% for student in students %}
<tr {% if student.sex == "女" %}style = "background-color : yellow " {% else %}style = "background-color : red">
<td>{{ forloop.counter }}</td>
<td>{{ student.name }}</td>
<td>{{ student.age }}</td>
<td>{{ student.sex }}</td>
<td>{{ student.phone | default: "未填" }}</td>
</tr>
{% endfor %}
# url 标签的应用
例:需求是点击列表明细里的 id 号后可以跳转到下一个对应的 id 的详情页
1)新建一个函数,内容如下:
def student_detail_view(request, pk):
student_detail = { 1: {'id' : 1 ,'name' : 'shen' , 'age' : 40 , 'address' : '上海'},
3: {'id' : 3 ,'name' : 'shen' , 'age' : 40 , 'address' : '上海'},
15: {'id' : 15 ,'name' : 'shen' , 'age' : 40 , 'address' : '上海'}
}
return render(request, 'teacher/student_detail_view.html, context = {'student_detail' : student_detail}
2) 在 teacher文件夹下url.py文件中设置路径
path('student_detail / <int : pk>/' , views.student_detail_view, name='student_detail')
3)在student_detail_view.html文件中加一个<a> 标签
<td><a href=" { % url 'teacher : student_detail' student.id %}>{{ student.id }}</a></td>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二、模板继承
语法格式:{% block 自定义名称 %}
第1步:新建一个base.html文件,把student_list_page.html文件内容复制到base.html文件中
第2步:在<title> </title>标签中写 {% block title %} Bottstrap 101 Template {% endblock %}
第3步:在<boby> </boby>标签中写{% block content %} {% endblock %}
第4步:在把<boby> </boby>标签中的内容删除,只留下第3步写的
第5步:在打开student_list_page.html文件,把内容全部删除写入
{ % extends 'teacher/base.html' %}
{ % block title %} 学生列表 {% endblock %}
{% block content %} 写内容的代码 {% endblock %}
优点:如果要加css效果,就可直接写在base.html文件里,那样student_list_page.html文件就会继承base.html文件里的css效果
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
三、模板引用
语法格式:{ % include '路径/html文件' %}
第一步:在app teacher文件夹下创建一个guanggao.html文件
第二步:在base.html文件中写{% block gog %}
{ % include 'teacher/guanggao.html' % }
{% endblock % }
优点:每个页面都会引用guanggao.html文件内容了