Djang模板系统

Django模板系统

常用语法:{{ }}和{% %}

变量相关的{{ }},逻辑相关的用{% %}。

变量:

​ 在Django的模板语言中按此语法使用:{{变量名}}。当模板引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。

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

  1. 字典查找(Dictionary lookup)
  2. 属性或方法查询(Attribute or method lookup)
  3. 数字索引查询(Numeric index Lookup)

注意事项:

  1. 如果计算结果的值是可调用的,它将被无参数的调用。调用的结果将成为模板的值。
  2. 如果使用的变量不存在,模板系统将插入string_if_invalid选项的值,它被默认设置为:''(空字符串)

几个例子:

# view.py

def test(request):
    list_1 = [1, 2, 3]
    dict_1 = {'name': 'goudan'}
    
    class Person:
        def __init__(self, name, age):
            self.name = name
            self.age = age
            
        def sb(self, name):
            return f'{name} is sb'
        
    
    Zhangsan = Person(name='Zhangsan', age=13)
    Lisi = Person(name='Lisi', age=14)
    person_list = [Zhangsan, Lisi]
    
    return render(request, 'text.html', locals())

模板中支持的写法:

# text.html

{# 取l中的第一个参数 #}
{{ list_1.0 }}
{# 取字典key的值 #}
{{ dict_1.name }}
{# 取对象的name属性 #}
{{ person_list.0.name }}
{# .操作只能调用不带参数的方法 #}
{{ person_list.0.sb }}

1、Filters(过滤器)

​ 在Django的模板语言中,通过使用过滤器来改变变量的显示。过滤器的语法:{{ value|filter_name:参数 }}。使用管道符"|"来应用过滤器。

例如:{{ name|lower}}会将name变量应用lower过滤器之后再显示它的值。lower再这里的作用是将文本全都变成小写。

注意事项:
  1. 过滤器支持"链式"操作。即一个过滤器的输出作为另一个过滤器的输入.
  2. 过滤器可以接受参数,例如:{{ sss|truncatewords:30 }},这将显示sss的前30个词.
  3. 过滤器参数包含空格的话,必须用引号包裹起来.比如使用逗号和空格去连接一个列表中的元素,如:{{ list|join:', '}}
  4. '|'左右没有空格没有空格没有空格.
Django的模板语言中提供了大约六十个内置的过滤器

未完待续..........................

猜你喜欢

转载自www.cnblogs.com/17vv/p/11484401.html