首页 > 其他分享 >django模板层

django模板层

时间:2022-12-13 22:00:27浏览次数:83  
标签:name age list django 语法 传值 模板

模板层

{{}}:主要是与数据值相关

{%%}:主要与逻辑相关

django的模板语法是自己写的 跟jinja2不一样

  1. 针对需要加括号调用的名字 django模板语法会自动加括号调用,我们只需要写名字就行

  2. 模板语法的注释前端浏览器是无法查看的{#注释内容#}

  3. 模板语法传值

    1. 传值方式1精准传值,不浪费资源怎对多资源的传递书写麻烦
    return render(request, 'demo02.html', {'n1': name, 'a1': age})
    
    1. 传值方式2将函数名称空间中所有的名字全部传递 名字过多并且不使用的的情况下比较浪费资源

      return render(request, 'demo02.html', locals())
      
  4. 模板语法传值特性

    1. 基本数据类型正常展示

    2. 文件对象也可以正常展示并调用

    3. 函数名会自动加括号执行将返回值展示到页面上(不支持额外传参)

    4. 类名也会自动加括号调用

    5. 对象则不会

    6. 总结针对可以加括号调用的名字模板语法都会自动加括号调用

      def template_test(request):
          l = [11, 22, 33]
          d = {"name": "alex"}
      
          class Person(object):
              def __init__(self, name, age):
                  self.name = name
                  self.age = age
      
              def dream(self):
                  return "{} is dream...".format(self.name)
      
          Alex = Person(name="Alex", age=34)
          jason = Person(name="jason", age=9000)
          Eva_J = Person(name="Eva_J", age=18)
      
          person_list = [Alex, jason, Eva_J]
          return render(request, "template_test.html", {"l": l, "d": d, "person_list": person_list})
      
      {# 取l中的第一个参数 #}
      {{ l.0 }}
      {# 取字典中key的值 #}
      {{ d.name }}
      {# 取对象的name属性 #}
      {{ person_list.0.name }}
      {# .操作只能调用不带参数的方法 #}
      {{ person_list.0.dream }}
      
  5. 模板语法自过滤气器(相当于内置函数)

    https://www.cnblogs.com/Dominic-Ji/articles/10982302.html详细的过滤器参考这里

    过滤器 用法 代码
    last 获取列表/元组的最后一个成员 {{liast | last}}
    first 获取列表/元组的第一个成员 {{list|first}}
    length 获取数据的长度 {{list | length}}
    defualt 当变量没有值的情况下, 系统输出默认值, {{str|default="默认值"}}
    safe 让系统不要对内容中的html代码进行实体转义 {{htmlcontent| safe}}
    upper 字母转换成大写 {{str | upper}}
    lower 字母转换成小写 {{str | lower}}
    title 每个单词首字母转换成大写 {{str | title}}
    date 日期时间格式转换 `{{ value
    cut 从内容中截取掉同样字符的内容 {{content | cut:"hello"}}
    list 把内容转换成列表格式 {{content | list}}
    add 加法 {{num| add}}
    filesizeformat 把文件大小的数值转换成单位表示 {{filesize | filesizeformat}}
    join 按指定字符拼接内容 {{list| join("-")}}
    random 随机提取某个成员 {list | random}}
    slice 按切片提取成员 {{list | slice:":-2"}}
    truncatechars 按字符长度截取内容 {{content | truncatechars:30}}
    truncatewords 按单词长度截取内容 同上

标签:name,age,list,django,语法,传值,模板
From: https://www.cnblogs.com/clever-cat/p/16980770.html

相关文章