模板语言包括4种类型,分别是:变量、标签、过滤器、注释。
变量语法:{{变量}}
{{ type.type }} 代表type_list的某个属性
标签语法:{%代码段%}
{%for item in mylist%}
{{item}}
{%endfor%}
内置标签查看:https://www.h5w3.com/doc/django-docs-2.0-zh-hans/
过滤器语法:变量|过滤器:参数
过滤器主要是对变量的内容进行处理,如替换、反序和转义等。
{{ variable | filter | lower }}
自定义过滤器:
创建templatetags.myfilter.py
from django import template
# 注册过滤器
register = template.Library()
# 声明并定义过滤器
@register.filter
def myreplace(value, agrs):
oldValue = agrs.split(':')[0]
newValue = agrs.split(':')[1]
return value.replace(oldValue, newValue)
上述代码用于实现HTML模板的字符串替换功能,与Python的replace函数相同,过滤器说明如下:
• 首先导入模板功能template,通过template声明Library对象,将对象赋值给变量register,这一过程称为注册过滤器。
• 过滤器以函数的形式实现,在函数前使用register.filter装饰器来表示该函数是一个过滤器,函数名可自行命名。
• 函数参数可设置一个或两个,如上述的参数分别是value和agrs,参数value是HTML模板的变量,参数agrs是过滤器函数定义的函数参数。
• 过滤器函数最后必须将处理结果返回,否则在使用过程中会出现异常信息。
引用 {{ title|myreplace:'首页:我的首页' }}
模板继承: {% extends “父模板”%}
{% extend 'base.html' %}
{% block titlt %}生鲜超市{% endblock title %}
{% block custom_css %}
<link rel="stylesheet" type="text/css" href=" /static /css/reset.css">
{% endblock custom_css %}
{% block content %}
<p>中央内容</p>
{% endblock content %}
{% block body %} 在继承的基础上实现自定义模板的内容
{% endblock %} 结束block标签
注释:
行注释 {#% if text %#}
块注释
{% comment %}
{% if text %}
{% endcomment %}