当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    Python Django模板之模板过滤器与自定义模板过滤器示例

    栏目:win服务器问题汇总 时间:2019-10-19 21:50

    本文实例讲述了Python Django模板之模板过滤器与自定义模板过滤器。分享给大家供大家参考,具体如下:

    模板过滤器

    过滤器用于对模板变量进行操作。

    date:改变日期的显示格式。

    length:求长度。字符串,列表。

    default:设置模板变量的默认值。

    格式:模板变量|过滤器:参数

    自定义过滤器。

    自定义的过滤器函数,至少有一个参数,最多两个

    例如:

    {{ book.btitle|length }} # 返回字符串或列表的长度
    
    {{ book.bpub_date|date:'Y年-m月-d日' }} # 格式化日期格式
    
    {{ content|default:'hello' }} # 为不存在的变量指定默认值。
    
    

    自定义模板过滤器

    应用名/templatetags/filters.py(自定义过滤器函数,templatetags文件名固定):

    # 自定义过滤器
    # 过滤器其实就是python函数
    from django.template import Library
    # 创建一个Library类的对象
    register = Library()
    # 自定义的过滤器函数,至少有一个参数,最多两个。(第一个参数就是要过滤的模板变量)
    @register.filter
    def mod(num):
      '''判断num是否为偶数'''
      return num%2 == 0
    @register.filter
    def mod_val(num, val):
      '''判断num是否能被val整除'''
      return num%val == 0
    
    

    demo.html(模板文件,使用自定义过滤器):

    <!DOCTYPE html>
    <html lang="en">
    {% load filters %} {# load标签加载自定义过滤器的py文件。和templatetags/filters.py 的py文件名一致。 #}
    <head>
      <meta charset="UTF-8">
      <title>模板过滤器</title>
    </head>
    <body>
    <ul>
      {# {% if book.id|mod %}#}  {# 使用自定义的过滤器。需要先load自定义过滤器的py文件 #}
      {% if book.id|mod_val:3 %}  {# 使用自定义的过滤器 #}
        。。。
      {% else %}
        。。。
      {% endif %}
    </ul>
    </body>
    </html>
    
    

    希望本文所述对大家基于Django框架的Python程序设计有所帮助。