Django 模版语法 三
使用自定义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 模版语法 三的更多相关文章
- django 模版 语法与使用
目录 django 模版语法与使用 django模板语言介绍 (摘自官方文档) 链接 什么是模板? 模板语句的 注释 变量 {{ 变量 }} 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值 ...
- Django 模版语法与使用
目录 Django 模版语法与使用 django模板语言介绍 (摘自官方文档) 链接 什么是模板? 模板语句的 注释 变量 {{ 变量 }} 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值 ...
- Django 模版语法 测试环境 ORM单表查询
模版语法 传值 视图函数向前端html页面传值,基本上所有的数据类型都可以渲染在前端页面上. views.py from django.shortcuts import render, redirec ...
- Django 模版语法
一.简介 模版是纯文本文件.它可以产生任何基于文本的的格式(HTML,XML,CSV等等). 模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签. {% extends "base ...
- django 模版语法及使用
模版的定义 模版是一个文本,用语分离文档的表现形式和内容,通常用于生成html 模版当中能够使用的python语法非常少,for ,if 之类,还有ifequal,结束的时候也要写endifequal ...
- Django 模版语法 一
创建项目 django_template 和 app django-admin startproject django_template python manage.py startapp app01 ...
- Django 模版语法 二
变量的过滤器(filter)的使用 过滤器:upper, lower, first, capfirst 在 views.py 中修改 from django.shortcuts import rend ...
- Django 模版语言详解
一.简介 模版是纯文本文件.它可以产生任何基于文本的的格式(HTML,XML,CSV等等). 模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的 标签. 例: {% extends "b ...
- Django 模板 语法 变量 过滤器 模板继承 组件 自定义标签和过滤器 静态文件相关
本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法 模板渲染的官方文档 关于模板渲染你只需要记两种特殊符号(语法 ...
随机推荐
- python 操作mysql数据库存
代码: 说明:由于我本机没有安装数据库,数据库是在远程访问的,故地址不是localhost # __author__ = 'STEVEN' import pymysql host = '10.1.1. ...
- [题解]luogu_AT1224_JOIOJI
https://www.cnblogs.com/fengzhiyuan/p/7588443.html 不会map,有点菜 1.要想知道三个字母出现次数相等, 为J [ i ]-J [ j ]== O[ ...
- 1-zookeeper基本原理和使用
1 分布式应用 1.1 分布式系统原理 在一个网络中,每台服务器上各跑一个应用,然后彼此连接起来就组成一套系统.比如提供完成的游戏服务,需要有认证应用,道具应用,积分应用,游戏主应用等,应用并非跑在一 ...
- sQL存储过程的优缺点
目前具体的项目中没有使用sql存储过程,都用的封装好的框架,简单说下存储过程的优缺点. 优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编 ...
- Linux —— 压缩命令
压缩与解压命令 .zip格式 压缩文件: zip 压缩文件名 原文件名 (压缩目录添加 -r) 解压缩文件/目录: unzip .zip压缩包 .gz格式 压缩文件: gzip 原文件名称 压缩文件为 ...
- mybatis实现简单的增删查改
接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增 ...
- Elasticsearch之安装
elasticsearch需要java8以上支持 java -version 二进制文件下载 www.elastic.co/downloads tar安装示例 1.下载tar文件 curl -L -O ...
- 转 Linux SendMail发送邮件失败诊断案例(四)
http://www.cnblogs.com/kerrycode/p/7826036.html
- D - 連結 / Connectivity 并查集
http://abc049.contest.atcoder.jp/tasks/arc065_b 一开始做这题的时候,就直接蒙逼了,n是2e5,如果真的要算出每一个节点u能否到达任意一个节点i,这不是f ...
- 按位&按位|按位~的详解
十进制转二进制: 例:十进制(5)---->二进制(00000101) 将整数除二取余,继续用除二的结果除二取余,最后将结果从下往上连接起来,不足八位,前面填0 二进制转十进制 例:二进制(00 ...