zoukankan      html  css  js  c++  java
  • Django模板自定义标签和过滤器

    1.在应用下创建目录templatetags(必须是该应用名)

    2.在templatetags目录下创建自定义标签文件tags.py和自定义过滤器文件filters.py

    tags.py

    from django import template
    from django.utils.html import format_html
    register = template.Library()
    
    # 自定义标签
    @register.simple_tag
    def my_add(arg_01, arg_02):
        res_add = arg_01 + arg_02
        return res_add
    @register.simple_tag
    def my_reduce(arg_01, arg_02):
        res_reduce = arg_01 - arg_02
        return res_reduce
    @register.simple_tag
    def my_multiply(arg_01, arg_02):
        res_multiply = arg_01 * arg_02
        return res_multiply
    @register.simple_tag
    def my_division(arg_01, arg_02):
        res_division = arg_01 / arg_02
        return res_division
    
    if __name__ == '__main__':
        res = my_add(9, 9)
        print(res)

    fliters.py

    from django import template
    register = template.Library()
    
    # 自定义过滤器
    @register.filter
    def hello(name):
        sayhello = 'Hi' + ' ' + name
        return sayhello
    
    if __name__ == '__main__':
        res = say_hello('mary')
        print(res)

    视图函数views.py

    def filter_tag(request):
        data = {'name': 'mary', 'country': 'usa', 'age': 18, 'special_product': ['香菇', '酸菜', '腊肉']}
        return render(request, 'filtertag.html', data)

    在页面就可以使用了,自定义的标签和过滤器使用前需要导入 {% load 自定义文件 %}

    filtertag.py

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>自定义标签和过滤器</title>
    </head>
    <body> 
        {{ country|lower|upper }} <br>
        {{ age|add:5 }} <br>
        {{ like|default:'not data' }} <br>
        {{ special_product|join:'=>' }} <br>
    
        {% load filters %}
        {{ name|hello }} <br>
    
        {% load tags %}
        {% my_add 3 9 %} <br>
        {% my_division 9 3 %}
    </body>
    </html>
  • 相关阅读:
    How to interpret complex C/C++ declarations (ZT)
    The Managed Thread Pool
    How slow is dynamic_cast?
    Type Safety
    sBRDF空间双向反射分布函数完全解析
    近日工作与生活梗概
    简单的环绕散射 Simple Wrap Diffuse From GPU GEMS1
    屈辱史
    难以忽视的细节
    物理学与计算机图形学中的HDR
  • 原文地址:https://www.cnblogs.com/glz666/p/13792791.html
Copyright © 2011-2022 走看看