template标签_第12章 Django模板中的标签释义

html的数据是静态的,动态内容由框架标签负责引进。Django在html页面嵌入标签,是以{% 代码块 %}的形式,而输出内容使用{{ 变量名称 }}。接下来,请看标签释义。

12.1 标签释义

模板标签的本质是函数,标签名一般即为函数名,分工的意义就不用多了说了,主要作用是载入代码渲染模板或对传递过来的参数进行一定的逻辑判断或计算后返回。

在Web框架中,标签常分为内置标签和自定义标签,在内置标签不够用的时候,才会去自定义标签(说了句废话)。Django的内置标签不是很多,好好熟悉一番。

常用内置标签一览表

04f99e6e294df660edd2aa69d7e4e041.png

12.2 自定义标签

如果框架内置的标签不够用,可以进行自定义,其步骤如下:

1. 新建templatetags包

在应用base下,新建templatetags包(内有__init__.py的文件夹),跟templates和static同级。

2. 新建标签文件

在templatetags下,新建一个mytag.py文件,我用返回当前日期打个样子,你可自行发挥,任意编一编。

from datetime import datetime

from django import template

register = template.Library()

@register.simple_tag

def current_time():

return datetime.now()

3. 在模板中的应用

在模板中,通过{% load mytags %}进行引入。温馨提醒:只有应用(base)在settting.py中INSTALLED_APPS进行登记的,自定义标签才能起作用。

岗位信息列表{% load mytag %}当前日期:{% current_time %}
{% for post in posts %}岗位:{{ post.name }}删除|修改
{% endfor %}

标签注册装饰器,除了简单声明外,还可以带参数,通过添加name参数,可以为标签举个另外的名字(默认是函数名),@register.simple_tag(name='current')。

还可以通过设置takes_context=True,获取上下文中的内容,如获取从views.py传过来的数据context['posts']。

另外,可通过 @register.inclusion_tag('index.html')获取其他模板文件内容。这种标签,称为包含包含标签。

Django框架中,除了标签之外,还有过滤器。有关过滤器的使用,请见下一节内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值