Django之模板

mac2022-06-30  100

  模板就是展示给用户的网页,其中包含的可变数据就是在数据库中获取的。

模板语法之变量

句点符  {{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}}

default

  如果变量为空或者false,使用给定的默认值,否则为变量值。例如:{{ value|default:"nothing" }}

length

  返回变量的长度,对字符串和列表都适用。例如:{{ value|length }}如果 value 是 ['a', 'b', 'c', 'd'],那么输出是 4。

filesizeformat

  将值格式化为人类可读的文件大小,例如:{{ value|filesizeformat }}如果 value 是 123456789,输出将会是 117.7 MB。  

date

 转化成日期格式 {{ value|date:"Y-m-d" }} 

slice

切片如:{{ value|slice:"2:-1" }}

truncatechars

  如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾。

参数:要截断的字符数     例如:{{ value|truncatechars:9 }}

safe

  Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。

比如:{{ value|safe}}

模板之标签    {% tag%}

for标签

遍历列表元素

{% for person in person_list %} <p>{{ person.name }}</p> {% endfor %}

 

遍历字典

{% for key,val in dic.items %} <p>{{ key }}:{{ val }}</p> {% endfor %}  

 循环序号可以通过{{forloop}}显示

for。。empty标签

{% for person in person_list %} <p>{{ person.name }}</p> {% empty %} <p>sorry,no person here</p> {% endfor %}

if标签

{% if num > 100 or num < 0 %} <p>无效</p> {% elif num > 80 and num < 100 %} <p>优秀</p> {% else %} <p>凑活吧</p> {% endif %}

with

使用一个简单地名字缓存一个复杂的变量,当你需要使用一个“昂贵的”方法(比如访问数据库)很多次的时候是非常有用的

例如:

{% with total=business.employees.count %} {{ total }} employee{{ total|pluralize }} {% endwith %}

csrf_token

这个标签用于跨站请求伪造保护,主要用在form表单提交。

转载于:https://www.cnblogs.com/yuliangkaiyue/p/9932591.html

相关资源:Django前端模板及crispy form美化等
最新回复(0)