Django 模版语法 三
2024-09-03 08:40:39
使用自定义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 : 最多两个参数
最新文章
- Objective-C 30分钟入门教程
- LeetCode: Largest Rectangle in Histogram(直方图最大面积)
- Spring 依赖注入方式详解
- Android Studio 2.2的新鲜事
- <;构建之法>; 第四章 结对 读后感
- SQL 数据库基础语句
- 团队软件开发_基于windows下截屏软件关于NABC框架的特点
- linux 消息队列的限制
- error C2018: unknown character &#39;0xa1&#39;
- 前端项目部署之Grunt
- Grub禁用UUID
- SQL Server 2014内存优化表的使用场景
- 常见的html面试题
- office------------word邮件合并(word2016版)
- 网站开发中使用javascript获取浏览器滚动条宽度
- 控制结构(7): 程序计数器(PC)
- Python3 元组(tuple)
- 静态属性property
- java基础知识总结--继承和接口
- [Node.js] 09 - Connect with Database
热门文章
- 清空模拟器中的app
- 牛客寒假6-E.海啸
- c#学习系列之Application.StartupPath的用法(美女时钟的做法)
- 关于IO模拟时序(SPI)的注意事项
- Codeforces Beta Round #12 (Div 2 Only) D. Ball 树状数组查询后缀、最值
- Spark Mllib里如何将数值特征字段用StandardScaler进行标准化(图文详解)
- js实现文本框验证和实现小数的加减乘除
- 前端开发神器 - Brackets
- 显示大图Activity(支持手势放大)
- 抽象常量class