一,常用语法
只需要记两种特殊符号:
{{ }}和 {% %}
变量相关的用{{}},逻辑相关的用{%%}。
二,常量
{{ 变量名 }}
变量名由字母数字和下划线组成。
点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值。
view中代码
</span><span style="color: #0000ff">class</span><span style="color: #000000"> Person(object):
</span><span style="color: #0000ff">def</span> <span style="color: #800080">__init__</span><span style="color: #000000">(self,name,age):
self.name </span>=<span style="color: #000000"> name
self.age </span>=<span style="color: #000000"> age
</span><span style="color: #0000ff">def</span><span style="color: #000000"> dream(self):
</span><span style="color: #0000ff">return</span> <span style="color: #800000">"</span><span style="color: #800000">{} is dream...</span><span style="color: #800000">"</span><span style="color: #000000">.format(self.name)
Alex </span>= Person(name=<span style="color: #800000">"</span><span style="color: #800000">Alex</span><span style="color: #800000">"</span>,age=34<span style="color: #000000">)
Egon </span>= Person(name=<span style="color: #800000">"</span><span style="color: #800000">Egon</span><span style="color: #800000">"</span>,age=9000<span style="color: #000000">)
Eva_J </span>= Person(name=<span style="color: #800000">"</span><span style="color: #800000">Eva_J</span><span style="color: #800000">"</span>,age=18<span style="color: #000000">)
person_list </span>=<span style="color: #000000"> [Alex,Egon,Eva_J]
</span><span style="color: #0000ff">return</span> render(request,<span style="color: #800000">"</span><span style="color: #800000">template_test.html</span><span style="color: #800000">"</span>,{<span style="color: #800000">"</span><span style="color: #800000">l</span><span style="color: #800000">"</span>: l,<span style="color: #800000">"</span><span style="color: #800000">d</span><span style="color: #800000">"</span>: d,<span style="color: #800000">"</span><span style="color: #800000">person_list</span><span style="color: #800000">"</span>: person_list})</pre>
模板中支持的写法:
三,Filters
语法: {{ value|filter_name:参数 }}
default
length
{{ value|length }}
'|'左右没有空格没有空格没有空格
返回value的长度,如 value=
filesizeformat
'13 KB', '4.1 MB'
, '102 bytes'
,等等)。例如:
slice
date
safe
Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。
比如:
value = "点我"
四,truncatechars
如果字符串字符多于指定的字符数量,那么会被截断。
五,自定义filter
自定义过滤器只是带有一个或两个参数的Python函数:
- 变量(输入)的值 - -不一定是一个字符串
- 参数的值 - 这可以有一个默认值,或完全省略
例如,在过滤器{{var | foo:“bar”}}中,过滤器foo将传递变量var和参数“bar”。
自定义filter代码文件摆放位置:
编写自定义filter
<span style="color: #0000ff">def<span style="color: #000000"> cut(value,arg):
<span style="color: #0000ff">return value.replace(arg,<span style="color: #800000">""<span style="color: #000000">)
@register.filter(name=<span style="color: #800000">"<span style="color: #800000">addSB<span style="color: #800000">"<span style="color: #000000">)
<span style="color: #0000ff">def<span style="color: #000000"> add_sb(value):
<span style="color: #0000ff">return <span style="color: #800000">"<span style="color: #800000">{} SB<span style="color: #800000">".format(value)
使用自定义filter
{# 使用我们自定义的filter #}
{{ somevariable|cut:"0" }}
{{ d.name|addSB }}
六,Tags
for
- % user user_list %
- {{ user.name }} % endfor %
for循环可用的一些参数:
-
{% for user in user_list %}
- {{ user.name }} {% empty %}
- 空空如也 {% endfor %}