首页 > 其他 > 详细

Djang模板系统

时间:2019-09-08 10:06:12      阅读:95      评论:0      收藏:0      [点我收藏+]

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的模板语言中提供了大约六十个内置的过滤器

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

Djang模板系统

原文:https://www.cnblogs.com/17vv/p/11484401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!