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

django之模板层

时间:2022-12-13 19:44:08浏览次数:40  
标签:value django 语法 括号 HTML 传值 模板

模板层

模板层的两种语法:
"""
{{}}:主要与数据值相关
{%%}:主要与逻辑相关

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

1.针对需要加括号调用的名字,django模板语法会自动加括号调用
2.模板语法的注释前端浏览器是无法查看的  {##}
"""

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

2.模板语法传值特性
    1.基本数据类型正常展示
    2.文件对象也可以展示并调用方法
    3.函数名会自动加括号执行并将返回值展示到页面上(不支持额外传参)
    4.类名也会自动加括号调用,也就是产生了一个对象
    5.对象不会加括号
  ps:针对可以加括号调用的名字模板语法都会自动加括号调用    

模板语法之过滤器(内置函数)

default
{{ value|default: "nothing"}}
如果value值没传的话就显示nothing

length
{{ value|length }}
'|'左右没有空格没有空格没有空格
返回value的长度,如 value=['a', 'b', 'c', 'd']的话,就显示4.

filesizeformat
将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)。例如:

{{ value|filesizeformat }}
如果 value 是 123456789,输出将会是 117.7 MB。

slice
切片
{{value|slice:"2:-1"}}

date
格式化
{{ value|date:"Y-m-d H:i:s"}}

safe
Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。
比如:
value = "点我"
{{ value|safe}}

truncatechars
如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾。
参数:截断的字符数
{{ value|truncatechars:9}}

标签:value,django,语法,括号,HTML,传值,模板
From: https://www.cnblogs.com/zhanghong1229/p/16979781.html

相关文章