zoukankan      html  css  js  c++  java
  • Django 模板函数

    Django 模板函数

    在模板中的函数是只需要函数名,不用加括号,自动执行

    在前端中的函数

    不用加括号,函数自动执行

    前端

    {% for item in userinfo.keys %}
        <h3>{{ item }}</h3>
    {% endfor %}
    
    {% for item in userinfo.values %}
        <h3>{{ item }}</h3>
    {% endfor %}
    
    {% for k,v in userinfo.items %}
        <h3>{{ k }}-{{ v }}</h3>
    {% endfor %}
    

    后台,
    后台发送的是字典

    def test(request):
        return render(request,'test.html',{
            'userinfo':{'k1':'v1','k2':'v2'}
        })
    

    转换大写

    {{ name|upper }}  {# 大写 #}
    

    本质是调用的Python的函数

    @register.filter(is_safe=False)
    @stringfilter
    def upper(value):
        """Converts a string into all uppercase."""
        return value.upper()
    

    模板中自定义函数

    实现步骤:

    • 1、在任意APP中创建templatetags模块

    • 2、在模块中穿件任意的py文件,如xx.py

    • 3、一定要写register = template.Library()

    • 4、在html中写load xx

    simple_filter

    filter只能传递2个参数

    可以用作条件判断,复杂的条件判断直接在simple_tag的函数中写

    from django import template
    
    register = template.Library()
    
    @register.filter()  # 使用这个装饰器
    def my_upper(value):
        return value.upper()
    
    {% load xx %}  
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        {{ name|my_upper }}
    </body>
    </html>
    

    接收多个参数

    @register.filter()
    def my_upper(value,arg):
        return value+arg
    
    {{ name|my_upper:"12456" }} 后面用冒号传递,不能用空格
    

    simple_tag

    • 反向生成URL就是用的simple_tag

    simple_tag能传递多个参数,
    引入的方式是和filter不同的e

    from django import template
    
    register = template.Library()
    
    @register.simple_tag()
    def my_lower(value):
        return value.lower()
    
    {% load xx %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        {% my_lower "aABDJ" %}
    </body>
    </html>
    

    多个参数

    @register.simple_tag()
    def my_add(value,a1,a2,a3):
        return value+a1+a2+a3
    
    {% my_add "he" "llo" "wo" "rld" %}
    

    总结:

    - simple_filter
        - 最多两个参数,方式: {{第一个参数|函数名称:"第二个参数"}}
        - 可以做条件判断
    - simple_tag
        - 无限制: {% 函数名 参数 参数%}
    

    include 组件

    {% include 'pub.html' %}
    
  • 相关阅读:
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Maximum Depth of Binary Tree
    Sharepoint 2013 创建TimeJob 自动发送邮件
    IE8 不能够在Sharepoint平台上在线打开Office文档解决方案
    TFS安装与管理
    局域网通过IP查看对方计算机名,通过计算机名查看对方IP以及查看在线所有电脑IP
    JS 隐藏Sharepoint中List Item View页面的某一个字段
    SharePoint Calculated Column Formulas & Functions
    JS 两个一组数组转二维数组
  • 原文地址:https://www.cnblogs.com/Python666/p/7225808.html
Copyright © 2011-2022 走看看