Django项目中模板标签及模板的继承与引用
{%静态%} {%范围(x)的x %} {% endfor %} 循环的序号{% forloop %} 循环的序号反向排列,从1开始计算,从0开始计算在后面加{% forloop上0。revcounter0 %} {%如果condition1 %} sentence1{%其他condition2 %} sentence2 {% endif %}
<强>模板标签url反向解析强>
视图函数
def student_detail_view(请求,pk): 学生={ 1:{“id”: 1、“名称”:“小明”,“年龄”:18岁的“性”:“男”}, 3:{“id”: 3,“名字”:“小花”,“年龄”:17岁的“性”:“女”}, 19:{“id”: 19日,“名字”:“小李”,“年龄”:18岁的“性”:“男”}, 100:{“id”: 100年,“名字”:“小红”,“年龄”:18岁的“性”:“女”}, } 如果pk学生: 学生=学生(pk) 其他: 学生='查无此人” 返回渲染(请求、老师/student_detail.html的上下文={“学生”:学生})
url反向解析应用模板
& lt; tbody> {%学生学生%} 如果学生& lt; tr {%。性=='女' %}{%其他%}{% endif %}祝辞 & lt; td> & lt; a href=" https://www.yisu.com/zixun/{% url 'teacher: student_detail”学生。id %}”在{{学生。id}} & lt;/a> & lt;/td> & lt; td> {{student.name}} & lt;/td> & lt; td>{{学生。年龄}}& lt;/td> & lt; td>{{学生。性}}& lt;/td> & lt;/tr> {% endfor %} & lt;/tbody>
学生详情页:
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> Title & lt;/head> & lt; body> 学生详情页: {{学生}} & lt;/body> & lt;/html>
为什么要有模板的继承与引用?
学前端的时候写的页面比较复杂,每个页面都有相同的地方。
模板的继承
首先,新建一个父类页面。<强>挖好坑1和坑2。强>
{%加载静态%} & lt; !DOCTYPE html> & lt; html lang=坝τ谩北? & lt; head> & lt;元charset=皍tf - 8”比; & lt;元http-equiv=癤-UA-Compatible”内容=癐E=边缘”比; & lt;元name=笆哟啊蹦谌?翱矶?设备宽度,初始=1”比; & lt; !——上述3个元标签*必须*放在最前面,任何其他内容都*必须*跟随其后!——比; & lt; !——挖的坑,通过模板标签块来实现模板的继承与引用——比; & lt; title>{%块标题%}{% endblock %} & lt;/title> & lt; !——引导比; & lt;链接的href=" https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css”rel=把奖怼北? & lt; !——HTML5垫片和回应。js是为了让IE8支持HTML5元素和媒体查询(媒体查询)功能,比; & lt; !——警告:通过文件://协议(就是直接将html页面拖拽到浏览器中)访问页面时做出回应。js不起作用,比; & lt; !——(如果lt IE 9)比; & lt;脚本src=" https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js”祝辞& lt;/script> & lt;脚本src=" https://cdn.jsdelivr.net/npm/respond.js@1.4.2/桌子/respond.min.js”祝辞& lt;/script> & lt; ! [endif]——比; & lt;/head> & lt; body> & lt; !——挖的坑2,通过模板标签块来实现模板的继承与引用——比; {%块内容%}{% endblock %} & lt; !——jQuery(引导的所有JavaScript插件都依赖jQuery,所以必须放在前边)——比; & lt;脚本src=" https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js”祝辞& lt;/script> & lt; !——加载引导的所有JavaScript插件。你也可以根据需要只加载单个插件。——比; & lt;脚本src=" https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js”祝辞& lt;/script> & lt;/body> & lt;/html>
其次,子类页面的继承。
{% '老师/扩展基础。html ' %} {%块标题%}学生列表{% endblock %} {%块内容%} & lt; h2>学生列表& lt;/h2> & lt;表类=氨怼痹? & lt; thead> & lt; tr> & lt; th> ID & lt; th>姓名& lt;/th> & lt; th>年龄& lt;/th> & lt; th>性别& lt;/th> & lt;/tr> & lt;/thead> & lt; tbody> {%学生学生%} 如果学生& lt; tr {%。性=='女' %}{%其他%}{% endif %}祝辞 & lt; td> & lt; a href=" https://www.yisu.com/zixun/{% url 'teacher: student_detail”学生。id %}”在{{学生。id}} & lt;/a> & lt;/td> & lt; td> {{student.name}} & lt;/td> & lt; td>{{学生。年龄}}& lt;/td> & lt; td>{{学生。性}}& lt;/td> & lt;/tr> {% endfor %} & lt;/tbody> & lt;/table> {% endblock %}详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)