roselearn

导航

Django过滤器、自定义过滤器与自定义标签

  • 过滤器

  视图

  模板

  过滤器符号为 | 

  {{sex | default:"未知"}} --当sex的值为空时,取“未知”
  {{age | add:"5"}} --给age的值加5
  {{hobby | first}} --取hobby列表变量的第一个值
  {{hobby | last}} --取hobby列表变量的最后一个值
  {{hobby | length}}--取hobby列表的长度
  {{hobby | join:" | "}}--将hobby的值用 | 拼接
  {{html | safe}}--将html这个变量里的代码以html的形式展示,若不加safe则会当成字符串展示

  配置好path,访问结果如下 

 

  点击跳转链接跳到配置的url

  若html变量未加safe,则展示成字符串

 

  • 自定义过滤器

  在app下创建python文件夹且名称必须为templatetags,再在文件夹下创建自定义过滤器python文件,如下图customfilter.py,该段代码实现了将sym替换成~~~

  视图

 

  模板

  需要先加载自定义过滤器,语法 {% load 过滤器文件名称 %}

  再使用过滤器,使用语法如下,myreplace是过滤器的名称

  

  结果如下,将Hello!替换成了Hello~~~

 

  • 自定义标签

  在templatetags下创建自字义标签python文件,如下图customtag.py,实现了获取当前时间

  模板

  需要先加载自定义标签,语法 {% load 自定义标签python文件名称 %}

  获取标签使用 {% 标签名称 %}

  注意,{}和%是连在一起的,不能有空格

  结果如下,这样就能获取当前时间

 

 

posted on 2023-01-11 17:38  dongzs  阅读(113)  评论(0)    收藏  举报