模板就是展示给用户的网页,其中包含的可变数据就是在数据库中获取的。
句点符 {{var}}
在views视图函数中传递数据给模板,就可以在模板中以句点符获取
def index(request): import datetime s="hello" l=[111,222,333] # 列表 dic={"name":"yuan","age":18} # 字典 date = datetime.date(1993, 5, 2) # 日期对象 class Person(object): def __init__(self,name): self.name=name person_yuan=Person("yuan") # 自定义类对象 person_egon=Person("egon") person_alex=Person("alex") person_list=[person_yuan,person_egon,person_alex] return render(request,"index.html",{"l":l,"dic":dic,"date":date,"person_list":person_list}) View Code模板下
<h4>{{s}}</h4> <h4>列表:{{ l.0 }}</h4> <h4>列表:{{ l.2 }}</h4> <h4>字典:{{ dic.name }}</h4> <h4>日期:{{ date.year }}</h4> <h4>类对象列表:{{ person_list.0.name }}</h4>这样再在浏览器上渲染就是带着具体数据的一些<h4>
语法:{{obj | filter__name:param}}
如果变量为空或者false,使用给定的默认值,否则为变量值。例如:{{ value|default:"nothing" }}
返回变量的长度,对字符串和列表都适用。例如:{{ value|length }}如果 value 是 ['a', 'b', 'c', 'd'],那么输出是 4。
将值格式化为人类可读的文件大小,例如:{{ value|filesizeformat }}如果 value 是 123456789,输出将会是 117.7 MB。
转化成日期格式 {{ value|date:"Y-m-d" }}
切片如:{{ value|slice:"2:-1" }}
如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾。
参数:要截断的字符数 例如:{{ value|truncatechars:9 }}
Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。
比如:{{ value|safe}}
遍历列表元素
{% for person in person_list %} <p>{{ person.name }}</p> {% endfor %}
遍历字典
{% for key,val in dic.items %} <p>{{ key }}:{{ val }}</p> {% endfor %}循环序号可以通过{{forloop}}显示
使用一个简单地名字缓存一个复杂的变量,当你需要使用一个“昂贵的”方法(比如访问数据库)很多次的时候是非常有用的
例如:
{% with total=business.employees.count %} {{ total }} employee{{ total|pluralize }} {% endwith %}这个标签用于跨站请求伪造保护,主要用在form表单提交。
转载于:https://www.cnblogs.com/yuliangkaiyue/p/9932591.html
相关资源:Django前端模板及crispy form美化等