使用自定义simple_tag

在 app01 下面创建 templatetags 文件夹,在创建 my_tag.py 文件,内容如下:

from django import template
from django.utils.safestring import mark_safe register = template.Library() # register的是固定变量名,不能改变 @register.simple_tag
def my_add100(v1):
return v1 + 100

修改 login.html 文件

...
{% my_add100 4 %} {% my_add 10 11 12 %}

修改 settings.py 文件

# 添加
'libraries':{
"my_tag":"app01.templatetags.my_tag",

位置如下

运行效果如下:

使用自定义 filter

修改 my_tag.py 文件

from django import template
from django.utils.safestring import mark_safe register = template.Library() # register的是固定变量名,不能改变 # filter 参数不能超过两个
@register.filter
def my_add100(v1, v2):
return v1 + 100 + v2 # simple_tag 不能用于if 语句
@register.simple_tag
def my_add(v1,v2,v3):
return v1 + v2 + v3

修改 login.html 文件

....
{{ num | my_add100:8 }}
...

修改 views.py 文件

........
def login(req):
if req.method=="POST":
return HttpResponse("ok") num = 100 return render(req, "login.html", locals())

运行效果如下:

{% if %} 的使用

修改 login.html 文件

......
{% if num|my_add100:34 > 100 %}
<p>大于100</p>
{% elif num|my_add100:34 < 100 %}
<p>小于100</p>
{% else %}
<p>等于100</p>
{% endif %}

总结:

simple_tag : 可以传多个参数, 不能用于 if for 语句

filter : 最多两个参数

Django 模版语法 三的更多相关文章

  1. django 模版 语法与使用

    目录 django 模版语法与使用 django模板语言介绍 (摘自官方文档) 链接 什么是模板? 模板语句的 注释 变量 {{ 变量 }} 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值 ...

  2. Django 模版语法与使用

    目录 Django 模版语法与使用 django模板语言介绍 (摘自官方文档) 链接 什么是模板? 模板语句的 注释 变量 {{ 变量 }} 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值 ...

  3. Django 模版语法 测试环境 ORM单表查询

    模版语法 传值 视图函数向前端html页面传值,基本上所有的数据类型都可以渲染在前端页面上. views.py from django.shortcuts import render, redirec ...

  4. Django 模版语法

    一.简介 模版是纯文本文件.它可以产生任何基于文本的的格式(HTML,XML,CSV等等). 模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签. {% extends "base ...

  5. django 模版语法及使用

    模版的定义 模版是一个文本,用语分离文档的表现形式和内容,通常用于生成html 模版当中能够使用的python语法非常少,for ,if 之类,还有ifequal,结束的时候也要写endifequal ...

  6. Django 模版语法 一

    创建项目 django_template 和 app django-admin startproject django_template python manage.py startapp app01 ...

  7. Django 模版语法 二

    变量的过滤器(filter)的使用 过滤器:upper, lower, first, capfirst 在 views.py 中修改 from django.shortcuts import rend ...

  8. Django 模版语言详解

    一.简介 模版是纯文本文件.它可以产生任何基于文本的的格式(HTML,XML,CSV等等). 模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签. 例: {% extends "b ...

  9. Django 模板 语法 变量 过滤器 模板继承 组件 自定义标签和过滤器 静态文件相关

    本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法   模板渲染的官方文档 关于模板渲染你只需要记两种特殊符号(语法 ...

随机推荐

  1. VLAN-4-在路由器上配置Trunk

    VLAN Trunk技术可以用在路由器和主机上,也可以用在交换机上.路由器不支持DTP,所以工程师必须手动配置. 路由器Trunk需要使用子接口(在一个接口中实现多个vlan间的路由和通信),每个子接 ...

  2. DHCP snooping(DHCP监听)

    DHCP监听可以防范利用DHCP发起的多种攻击行为,如DHCP中间人攻击,伪造多台设备耗尽地址池 DHCP监听允许可信端口上的所有DHCP消息,但是却过滤非可信端口上的DHCP消息,DHCP监听还会在 ...

  3. VUE循环菜单

  4. Codeforces 1137D(技巧)

    一开始写的第一步让0和1一起走然后第二步再让0走会挂最后一个点--然后探索一下觉得主要问题在于我模拟的一步一步地走.如果这样的话9 2这个数据会使第17步他俩就碰在final点了,而实际上我们想要的效 ...

  5. Django 使用allauth报错

    一:报错 RuntimeError: Model class django.contrib.sites.models.Site doesn't declare an explicit app_labe ...

  6. corn表达式 经典

    https://www.cnblogs.com/GarfieldTom/p/3746290.html

  7. Apache的多处理模块MPM

    本博文主要参数 Apache 2.2文档以及Apache模块开发指南 Apache的整个运行可以分为两个阶段:启动阶段和运行阶段. 在启动阶段时,它以ROOT特权来启动,进行解析配置文件(一般就是ht ...

  8. JS中数组的介绍

    一.数组: 一组数据的集合: 二.JS中数组的特点: 1.数组定义时无需指定数据类型: 2.数组定义时可以无需指定数组长度: 3.数组可以存储任何类型的数据: 4.一般是相同的数据类型: 三.数组的创 ...

  9. 6、旋转数组的最小位置------------>剑指offer系列

    题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转, ...

  10. CF1080D Olya and magical square

    思路: 构造. 实现: #include <bits/stdc++.h> using namespace std; typedef long long ll; ll sum[]; int ...