模版是一个用django模版语言标记过的python字符串。模版可以包含模版标签和变量。
模版标签是在一个模版里起作用的标记。比如,一个模版标签可以产生控制结构的内容(if或者for),可以获取数据库内容或者访问其它模版标签。
一个标签块被{%%}包围
变量标签被{{}}包围
context是一个传递给模版的key-value对。
模版渲染是通过从context获取值来替换模版中变量并执行所有的模版标签。
比如定义一个upper的标签,其作用是将字符串全部转换为大写
首先在你要加载这个tag的app中新建一个python Package,创建一个upper.py
from django import template
register = template.Library()
class upperNode(template.Node):
def __init__(self,nodelist):
self.nodelist = nodelist
def render(self, context):
content = self.nodelist.render(context)
return content.upper() #大小写转换
@register.tag
def upper(parser,token):
nodelist = parser.parse("endupper") #指定结束符
parser.delete_first_token()
return upperNode(nodelist)
然后在html中加载:
{% load upper %}
{% upper %}
自定义标签{{ test }}
{% endupper %}