Django模板2

281 阅读1分钟

模板标签的for

forloop.first 是否第一次循环
forloop.last 是否最后一次循环 forloop.counter 标识第几次循环 1 2 3... forloop.counter0 标识第几次循环 0 1 2 .... forloop.revcounter 逆序的标识 forloop.revcounter0 forloop.parentloop 外层循环

图片表示

模板过滤器

变量在输出时,对其进行处理

{{ friend|lower }}  <!--变量过滤为小写-->
{{ friend|upper }}  <!--过滤为大写-->
{{ age|add:"5"}}  <!--给年龄增加5--> 
{{ name|truncatechars:"3"}} <!--字符串长度超过3则截断 显示为...-->

code-->'<script>alert('这是一段js代码')</script>'
{{ code }} <!--  默认转义 为普通的字符,js代码来到前端是不能执行的-->
{{ code|safe }} <!--不转义  如果字串是一段js代码  则可以执行-->

模板的继承

如果模板只有中间的少部分,在变化,如下:
模板继承
那不变的部分就可以抽出作为父模板,其他的需要使用这部分的页面只需继承 父模板

父模板 base.html

<div>
	这是公共的部分Header
</div>

{% block b1 %}
在这里定义可扩展的内容
{% endblock %}

<div>
这是公共的部分Footer
</div>

子模板继承父模板的全部内容,在可扩展模块,扩展自己的内容 在这里插入图片描述 单独应用下的子模板,继承应用下的"appname/base.html"
单独应用下的子模版,也可继承根目录下的父模板

url反向解析

在模板、视图中,使用path 中定义的name 参数,动态的查找、计算响应的路由

如:

#urls.py
urlpatterns = [
	path("index/",index,name="index_page"), #唯一的名字
]


#在模板中反向解析
<a href = "{% url 'index_page' age=18 %}">反向解析地址</a> 
#/index/?age=18

#在视图中反向解析
from django.urls import reverse
url = reverse("index_page",args=[],kwargs={})

模板中: 在这里插入图片描述 返回给前端的页面已经是具体的url

上一篇:Django模板1
下一篇:Django静态文件