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' %}

Django 模板函数的更多相关文章

  1. 【python】Django自定义模板函数

    参考:https://blog.csdn.net/wenyuanhai/article/details/73656761 注意: 1.自定义模板函数的路径必须为APP的templatetags下:ap ...

  2. JavaScript中作用域回顾(避免使用全局变量)(瀑布流的实现)(scroll事件)以及Django自定义模板函数回顾

    页面显示照片样式为瀑布流: 上面的div个数可以按照自己安排进行划分.img的分布可以使用模板标签以及自定义模板函数进行排布: 自定义模板函数实现可以看,最后几列:python---django中模板 ...

  3. Django自定义模板函数

    Django自定义模板函数 https://www.cnblogs.com/SunsetSunrise/p/7680491.html 在django中新建一个应用:listpage在listpage中 ...

  4. 在 Django 模板中遍历复杂数据结构的关键是句点字符

    在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . ). 实例二 mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <h ...

  5. python django 模板

    1 用两个大括号括起来的文字{{person_name}} 称为变量 2 被 大括号和面分号包围的文件({% if ordered_warranty %})是模板标签 3 过滤器是用管道符(|) 和U ...

  6. Django模板-分离的模板

    上一篇Django模板-在视图中使用模板最后的问题,我们需要把数据和展现分离开. 你可能首先考虑把模板保存在文件系统的某个位置并用 Python 内建的文件操作函数来读取文件内容. 假设文件保存在 E ...

  7. 关于Django模板引擎的研究

    原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not found.1其原因是没有给视 ...

  8. Django模板引擎的研究

    Django模板引擎的研究 原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not f ...

  9. django模板系统基础

    模板系统基础Django模板是一个string文本,它用来分离一个文档的展现和数据 模板定义了placeholder和表示多种逻辑的tags来规定文档如何展现 通常模板用来输出HTML,但是Djang ...

随机推荐

  1. 再论c#获取存储过程返回值(包括SqlSugar)

    其实这个问题好多年以前研究过: https://blog.csdn.net/xpnew/article/details/6909902 最近因为需要统计日结月结,给同事写了一套调用存储过程的代码.同时 ...

  2. Light Pre-Pass 渲染器----为多光源设计一个渲染器

    http://blog.csdn.net/xoyojank/article/details/4460953 作者: Wolfgang Engel, 原文: http://www.wolfgang-en ...

  3. Laravel Model 利用 Macroable 为数据模型添加宏能力

    什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).Thin ...

  4. Python简易购物车程序

    2019年5月24日,是我离开北京回学校的日子.我退了组的房子,辞了工作,带着对小秋香不舍回家,这匆匆一别,不知何时才是归期. 这几天都疏于学习,因为每一天我都会和她找点有意思的事情来做,如果这一别就 ...

  5. 如何使用WPS从正文开始页码为1,而不是从目录开始?

    在插入目录前,在最前页插入一个空白页,在这个空白页里面生成目录,双击正文的页脚,点一下出现的与上一节相同的按钮,关闭页眉页脚的同前节,发现与上一节相同这几个字消失后,把目录中的页码删除,不会在影响正文 ...

  6. maven settings.xml windows

    <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Soft ...

  7. shell 经典

    使用新写法 这里的新写法不是指有多厉害,而是指我们可能更希望使用较新引入的一些语法,更多是偏向代码风格的,比如 尽量使用func(){}来定义函数,而不是func{} 尽量使用[[]]来代替[] 尽量 ...

  8. 047 Permutations II 有重复数字的全排列

    给定一个可能包含重复数字的集合,返回所有可能的不同全排列.例如,[1,1,2] 有以下不同全排列:[  [1,1,2],  [1,2,1],  [2,1,1]] 详见:https://leetcode ...

  9. windows 2008 r2或win7安装SP1补丁,安装sqlserver 2012

    说明:安装sql server 2012时,win7和win2008r2系统都需要打sp1补丁. 1.SP1补丁下载地址(建议用迅雷下载): http://download.microsoft.com ...

  10. CentOS7.5 搭建mycat1.6.6

    1.环境及版本 操作系统:   CentOS 7.5 数据库:MySQL 5.7.23 jdk:1.8.0_191 mycat:1.6.6.1 cat /etc/centos-release mysq ...