刨析django-模板2

本文深入探讨Django模板语言的关键特性,包括for循环的细节如first、last属性,过滤器如lower、upper、add等的使用,模板继承的概念以及如何创建和使用父模板,以及URL反向解析在模板和视图中的应用。通过实例展示了如何在模板中实现动态内容展示和高效代码复用。
摘要由CSDN通过智能技术生成

模板标签的for

forloop.first 是否第一次循环
forloop.last 是否最后一次循环
forloop.counter 标识第几次循环 1 2 3…
forloop.counter0 标识第几次循环 0 1 2 …
forloop.revcounter 逆序的标识
forloop.revcounter0
forloop.parentloop 外层循环
{% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}
更多参考

在这里插入图片描述

模板过滤器

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

{{ 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值