Django基础之模板

django基础之模板

一,语法

关于模板渲染你只需要记两种特殊符号(语法):
  {{ }}和 {% %}
  变量相关的用{{}},逻辑相关的用{%%}。

二.变量

1,定义及注意事项类

在Django的模板语言中按此语法使用:{{ 变量名 }}。

当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。 变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或标点符号。

 

深度查询据点符(.)在模板语言中有特殊的含义。当模版系统遇到点("."),它将以这样的顺序查询:

    字典查询(Dictionary lookup)
    属性或方法查询(Attribute or method lookup)
    数字索引查询(Numeric index lookup)

 

注意事项:

  1. 如果计算结果的值是可调用的,它将被无参数的调用。 调用的结果将成为模版的值。

  2. 如果使用的变量不存在, 模版系统将插入 string_if_invalid 选项的值, 它被默认设置为'' (空字符串) 。

2.实例
views视图:
name='大白'
   s='ss2sassqsws'
   num=1024*1024*1024
   dic={'zhao':['five','人渣'],'peng':['小鸟依人']}
   t=datetime.datetime(1996,5,4,11,11,11)
   return  render(request,'moban.html',{'name':name,'s':s,'dic':dic,'t':t,'num':num})



HTML写法:
   <p>{{ name }}</p>                       #用name值替换name    
   <p>{{ s }}</p> #s值替换s
   <p>{{ dic.zhao }}</p> #dic的zhao键对应的值 替换 dic.zhao
   <p>{{ t.month }}</p> #t的month对应的值 替换 t.month

   <p>{{ t|date:'Y-m-d H:i:s'}}</p>
   <p>{{ s|default:'大强' }}</p>
   <p>{{ s|length }}</p>
   <p>{{ num|filesizeformat }}</p>
   <p>{{ s|slice:'2:5' }}</p>
   <p>{{ s|upper }}</p>
   <p>{{ s|safe }}</p>

三.过滤器

1,定义以及注意事项

过滤器的语法: {{ value|filter_name:参数 }}      使用管道符"|"来应用过滤器。

 

注意事项:

  1. 过滤器支持“链式”操作。即一个过滤器的输出作为另一个过滤器的输入。

  2. 过滤器可以接受参数,例如:{{ sss|truncatewords:30 }},这将显示sss的前30个词。

  3. 过滤器参数包含空格的话,必须用引号包裹起来。比如使用逗号和空格去连接一个列表中的元素,如:{{ list|join:', ' }}

  4. '|'左右没有空格没有空格没有空格

 

2.具体用法
    <p>{{ t|date:'Y-m-d H:i:s'}}</p>            #对获取的时间格式进行改变
   <p>{{ s|default:'大强' }}</p> #如果变量未赋值,就用默认
   <p>{{ s|length }}</p> #测量内容长度
   <p>{{ num|filesizeformat }}</p> #内容值格式化
   <p>{{ s|slice:'2:5' }}</p>           #对内容切片,从索引2到5,不包括5
   <p>{{ s|upper }}</p> #对内容进行大写处理
   <p>{{ s|safe }}</p> #保护内容拿权

 

default  如果一个变量是false或者为空,使用给定的默认值。 否则,使用变量的值。
length返回值的长度,作用于字符串和列表。
filesizeformat将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)
slice切片,如果 value="hello world",还有其他可切片的数据类型
date格式化,如果 value=datetime.datetime.now()
safe  要我说就是保护数据安全

 

posted @ 2019-05-20 22:42  socoolonly1  阅读(73)  评论(0)    收藏  举报