zoukankan      html  css  js  c++  java
  • django模板语言和过滤

    一:模板组成

      HTML代码 + 逻辑控制代码

      逻辑代码组成格式:

        使用大括号来引用变量, {{ var_name }}

    二: Template和Context对象

    //进入该的django的项目环境
    >>>python3 manage.py shell
    >>>from django.template import Context, Template
    >>> t = Template('My name is {{ name }}.') //创建模板
    >>> c = Context({'name': 'Stephane'})  //创建上下文
    >>> t.render(c) //使用模板渲染上下文
    
    //同一个模板,多个上下文,可以创建模板后,通过for循环渲染上下文
    t = Template('Hello, {{ name }}')
    for name in ('John', 'Julie', 'Pat'):
        print t.render(Context({'name': name}))
    模板渲染上下文

    三: 模板获取上下文变量的值

    //上下文传值
    def showTemplate(request):
        # value = 'NBA'
        # value = [1, 22, 333]
        # value = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
        # value = datetime.datetime.now()
    
        class Person:
            def __init__(self,name,age):
                self.name = name
                self.age = age
    
        value = Person('Jack', 18)
    
        return render(request, 'template.html', {'value': value})
        # return render(request, 'template.html', locals())
    
    //模板渲染
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    //直接显示
    {#{{ value }}#}
    
    //数组根据索引取值
    {#{{ value.0 }}#}
    
    //字典根据键取值
    {#{{ value.key1 }}#}
    
    //对象点调用获取属性
    {#{{ value.year }}#}
    {#{{ value.name }}#}
    
    </body>
    </html>

     三: 过滤变量

    //字母大写, 'nba'-->'NBA'
    {{ value|upper }}
    //数字相加
    {{ value|add:2 }}
    //首字母大写
    {{ value|capfirst }}
    //删除指定字符串
    {{ value|cut:' ' }}
    //时间显示格式
    {{ value|date:'Y-m-d'}}
    //如果为空,默认显示
    {{ value|default:'null' }}
    //字符串大小,xxKB
    {{ value|filesizeformat }}
    //第一个字符
    {{ value|first }}
    //字符串长度
    {{ value|length }}
    //截取字符串,截取到倒数第二位
    {{ value|slice:'-1' }}
    //给变量中的引号加上斜线
    {{ value|addslashes }}
    //url转码
    {{ value|urlencode }}
    
    //将字符串转为浏览器识别的HTML标签,两种方式都可以
    1.{{ value|safe }}
    
    2. {% autoescape %}
        {{ value }}
       {% endautoescape %}
  • 相关阅读:
    js中url跳转问题
    代码走查整理总结
    关于前后端分离跨域请求问题
    mysql大小写敏感问题
    初识react
    mysql测试
    关于使用Ajax请求json数据,@RequestMapping返回中文乱码的几种解决办法
    ssm实现分页查询
    js表单验证处理和childNodes 和children 的区别
    javaScript数组操作整理
  • 原文地址:https://www.cnblogs.com/jiefangzhe/p/10559664.html
Copyright © 2011-2022 走看看