zoukankan      html  css  js  c++  java
  • Django 自定义过滤器

    设定自定义过滤器之前要现在配置文件内把自己项目名在 INSTALLED_APPS 内导入

    #已安装的django应用
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        #将自己的应用,填充到配置文件中去
        'mysite'
    ]

    在settings.py文件同级目录中建立templatetags目录用于存放自定义过滤器的py文件

    自定义过滤器的相应操作

    #导包
    #导入模板模块
    from django import template
    
    #注册过滤器对象
    register = template.Library()
    
    #自定义过滤器
    #在django内部,通过装饰器的方式来注册自定义过滤器
    @register.filter
    def my_str(val):
        return "$" + val
    
    #定义一个双参数的过滤器
    @register.filter
    def my_str_two(val,p1):
        return val + p1
    
    #定义一个多参数的过滤器
    #注册过滤器的时候,需要注册simple_tag
    @register.simple_tag
    def my_str_many(val,p1,p2):
        return val + p1 +p2
    
    #定义一个取余数的过滤器
    @register.filter
    def get_line(val):
        return int(val) % 2

    定义好的自定义过滤器文件在html文件导入过滤器文件后即可直接调用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>自定义过滤器的使用</title>
        <style>
            
            table{
                border: 1px solid red;
                padding: 30px;
            }
            tr{
                border: 1px solid blueviolet;
            }
            .tr2{
                background-color: brown;
            }
            .tr1{
                background-color: goldenrod;
            }
        
        </style>
    </head>
    <body>
    
        {# 导入过滤器文件 #}
        {% load my_filter %}
    
        {{ test_str | my_str }} <br>
    
    
        {{ test_list }} <br>
    
        {{ test_list | length }} <br>
    
        {# 两个参数,进行调用 #}
        {{ '你好' | my_str_two:'不好' }}<br>
    
        {# 调用多参数的过滤器 #}
        {% my_str_many "你好" "不好" "啊" %}<br>
    
        {# 使用逻辑判断 #}
    
        {% if test_int == 100 %}
        等于一百
        {% else %}
        不等于一百
        {% endif %}<br>
    
        {% if test_int > 100 %}
        大于
        {% elif test_int < 100 %}
        小于
        {% else %}
        等于
        {% endif %}
    
    </body>
    </html>
  • 相关阅读:
    四种wordpress常用的循环结构
    自动创建网页文章目录结构
    shell
    SSH
    架构
    Https
    if-else、switch、while、for
    do-while
    const
    Tail Call
  • 原文地址:https://www.cnblogs.com/Niuxingyu/p/10296196.html
Copyright © 2011-2022 走看看