模板可以分为下面几类

- 母版- 函数->>自动执行(这里自动执行是不能给参数的)- 模板自定义函数: * simple_filter 这个simple_filter就是html里面的{{name|upper}}中的upper,这个内置函数就是一个simple_filter自定义simple_tag

参考:https://docs.djangoproject.com/en/1.10/ref/templates/language/
http://www.cnblogs.com/wupeiqi/articles/5237704.html
1、要在任意的一个app下面创建名字必须为templatetags的目录,如下图

2、在这个templatetags目录下面创建任意一个名字的py文件,如下图

3,在模板使用的时候需要导入

4、这个app必须要在setting里面做了配置,否则不能使用自定义的

5,多个参数的传参
给xxx.py文件修改,可以获取多个参数


这个时候如果,前端引用的时候还是name|my_upper,没有给传参数就会报错,如下

所以我们可以在应用的时候传递第二个参数

{{ name|my_upper:"89989898"}}

这样得到的结果,后面是有值的,如下图

filter 这只能传递一个参数,既my_upper:"89989898"中的my_upper后面不能有空格,直接加一个字符串,要想多个,就用逗号分隔,写成多个my_upper:"89,98,98,98"
这里的filter,可以作为if 判断语句的条件,而下面的tag就是不可以的

tag方法


模板的语言

{{ item }}{% for item in item_list %} <a>{{ item }}</a> {% endfor %}  forloop.counter  forloop.first  forloop.last {% if ordered_warranty %} {% else %} {% endif %}母板:{% block title %}{% endblock %}子板:{% extends "base.html" %}   {% block title %}{% endblock %}帮助方法:{{ item.event_start|date:"Y-m-d H:i:s"}}{{ bio|truncatewords:"30" }}{{ my_list|first|upper }}{{ name|lower }}公共的组件include方法