zoukankan      html  css  js  c++  java
  • 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的参数以空格分割;

  • 相关阅读:
    java工程师要求
    系统架构设计师知识模块
    Mybatis使用训练
    项目—视频直播系统
    [数算]概率
    查看镜像文件
    Hadoop启动命令
    Hadoop启动命令
    HDFS设置配额管理
    HDFS设置配额管理
  • 原文地址:https://www.cnblogs.com/wumingxiaoyao/p/6529452.html
Copyright © 2011-2022 走看看