模板语言
Posted yehost
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板语言相关的知识,希望对你有一定的参考价值。
自定义filter和simple_tag
- 在app中创建templatetags模块(必须的)
- 创建任意.py文件,如:my_tags.py
templatetags
_init_.py
my_tag.py

from django import template from django.utils.safestring import mark_safe register = template.Library() #register的名字是固定的,不可改变 @register.filter def filter_multi(v1,v2): return v1 * v2 @register.simple_tag def simple_tag_multi(v1,v2): return v1 * v2 @register.simple_tag def my_input(id,arg): result = "<input type=‘text‘ id=‘%s‘ class=‘%s‘ />" %(id,arg,) return mark_safe(result)
- 在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tags.py :{% load my_tags %}
@register.simple_tag def my_add100(v1): return v1+100 @register.filter def my_add1000(v1): return v1+1000 -------------------------------.html {% load xxx.py %} #首行 <h1>{% my_add100 188 %}</h1> <h1>{{ 888|my_add1000 }}</h1> 结果: 288 1888
- 在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.
注意: filter可以用在if等语句后,simple_tag不可以
filter的参数不能超过两个
以上是关于模板语言的主要内容,如果未能解决你的问题,请参考以下文章