• django -- 自定义simpletag 和 filter


    django中自定义simpletag,即使用自己定义的函数在html中处理数据。

    步骤:

    1、创建并注册app

    settings.py

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'mytag',
    ]
    

    2、在此app下创建目录templatetags

    3、在templatetags目录下创建任意py文件,在文件中创建template对象register

    from django import template
    
    register = template.Library()
    
    
    @register.simple_tag
    def testtag(v1, v2):
        return v1 + v2
    

    4.修改html

    顶部添加{% load ttag %}

    {% load ttag %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>tag</title>
    </head>
    <body>
        <span>{% testtag 4 7 %}</span>
    </body>
    </html>
    

    效果:

    自定义filter和tag类似

    修改 @register.simple_tag 为 @register.filter

    使用方式变为:{{ 'param1'|testfilter:'param2' }}

    代码:

    ttag.py

    from django import template
    
    register = template.Library()
    
    
    @register.filter
    def testfilter(v1, v2):
        return v1 + v2
    
    {% load ttag %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>tag</title>
    </head>
    <body>
        <span>{% testtag 4 7 %}</span>
        <span>{{ 'Hello'|testfilter:'World!' }}</span>
    </body>
    </html>
    

    效果:

    两者对比:

    simpletag不能作为if条件,而filter可以;

    filter的参数必须放到字符串里而且不能加空格,而simpletag的参数以空格分割;

  • 相关阅读:
    iOS开发之JSONKit
    iOS开发之XMPPFramework环境搭建和配置
    iOS开发之UICollectionViewController
    iOS开发之UITableViewController重写
    Object-c 开发之property
    Git使用
    解决CocoaPods下载慢的问题
    解决Linux下编译adb和fastboot问题
    解决fastboot刷机内存消耗问题
    sql
  • 原文地址:https://www.cnblogs.com/wumingxiaoyao/p/6529452.html
Copyright © 2020-2023  润新知