django中自定义simpletag,即使用自己定义的函数在html中处理数据。

步骤:

1、创建并注册app

settings.py

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mytag',
]

2、在此app下创建目录templatetags

3、在templatetags目录下创建任意py文件,在文件中创建template对象register

from django import template

register = template.Library()

@register.simple_tag
def testtag(v1, v2):
return v1 + v2

4.修改html

顶部添加{% load ttag %}

{% load ttag %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tag</title>
</head>
<body>
<span>{% testtag 4 7 %}</span>
</body>
</html>

效果:

自定义filter和tag类似

修改 @register.simple_tag 为 @register.filter

使用方式变为:{{ 'param1'|testfilter:'param2' }}

代码:

ttag.py

from django import template

register = template.Library()

@register.filter
def testfilter(v1, v2):
return v1 + v2
{% load ttag %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tag</title>
</head>
<body>
<span>{% testtag 4 7 %}</span>
<span>{{ 'Hello'|testfilter:'World!' }}</span>
</body>
</html>

效果:

两者对比:

simpletag不能作为if条件,而filter可以;

filter的参数必须放到字符串里而且不能加空格,而simpletag的参数以空格分割;

django -- 自定义simpletag 和 filter的更多相关文章

  1. django 自定义过滤器(filter)处理较为复杂的变量的实例

    简述:django 在views中有数据需要通过字典(dict)的方式传递给template,该字典中又包含了字典,而且字典中的键值还是一个对象,在template中处理传递过来的数据的时候,字典不能 ...

  2. django自定义simple_tag和filter

    1.自定义simple_tag: 1).在app目录名下创建templatetags目录,并新建__init__.py文件. 2).在templatetags目录下创建任意名字的py文件,例如rema ...

  3. Django中的tags,母版和继承,组件,静态文件相关,自定义simpletag和自定义inclusion_tag

    Tags for <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} &l ...

  4. python Tags 母板 组件 静态文件相关 自定义simpletag inclusion_tag

    一.Tags(一)for 1.基本用法 <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% e ...

  5. django 自定义标签和过滤器

    django 自定义标签和过滤器 Django支持自定义标签和过滤器.起初还不太重视它这项功能,但最近试了试自定义标签.发现django这个功能实在是太爽了. 首先在你项目的一个app中建立一个pyt ...

  6. Django 自定义过滤器

    设定自定义过滤器之前要现在配置文件内把自己项目名在 INSTALLED_APPS 内导入 #已安装的django应用 INSTALLED_APPS = [ 'django.contrib.admin' ...

  7. Django自定义过滤器

    1.首先在在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建templatetags模块(模块名只能是temp ...

  8. django 自定义过滤器中的坑.

    今天在创建自定义过滤器的时候,设置已正常.但是在运行后报: 'filter' is not a valid tag library: Template library filter not found ...

  9. Django 自定义标签与过滤器报错 No module named 'templatetags'

    Django 自定义标签与过滤器报错 按照网上的教程如果想使用自定义的标签与过滤器就得往settings.py中添加下列数据 TEMPLATES = [ { 'BACKEND': 'django.te ...

随机推荐

  1. socket创建TCP服务端和客户端

    看情况选择相对应的套接字*面向连接的传输--tcp协议--可靠的--流式套接字(SOCK_STREAM)*面向无连接的传输--udp协议--不可靠的--数据报套接字(SOCK_DGRAM) 在liun ...

  2. HihoCoder 1075 开锁魔法III(概率DP+组合)

    描述 一日,崔克茜来到小马镇表演魔法. 其中有一个节目是开锁咒:舞台上有 n 个盒子,每个盒子中有一把钥匙,对于每个盒子而言有且仅有一把钥匙能打开它.初始时,崔克茜将会随机地选择 k 个盒子用魔法将它 ...

  3. Java并发--阻塞队列

    在前面几篇文章中,我们讨论了同步容器(Hashtable.Vector),也讨论了并发容器(ConcurrentHashMap.CopyOnWriteArrayList),这些工具都为我们编写多线程程 ...

  4. psoc4的capsense总结

    psoc4的capsense算是个比较实用的东西,触摸按键,显得有点高大上,呵呵.今天试用了一下,对照着数据手册,现在总结一下. 1,先说原理,官方做文档的时候应该把原理讲一下,不要上来就讲怎么用,怎 ...

  5. UVA11538 Chess Queen

    题意 给一个\(n \times m\)的棋盘,输出有多少种方法放置两个互相攻击的皇后. \(n,m \leq 10^6\) 分析 参照刘汝佳的题解. 横.竖.斜三种情况互不相干,加法原理统计. 横竖 ...

  6. Oracle之 等待事件log file sync + log file parallel write (awr优化)

    这是3月份某客户的情况,原因是server硬件故障后进行更换之后,业务翻译偶尔出现提交缓慢的情况.我们先来看下awr的情况. 我们能够看到,该系统的load profile信息事实上并不高,每秒才21 ...

  7. bzoj 1670 [Usaco2006 Oct]Building the Moat护城河的挖掘——凸包

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1670 用叉积判断.注意两端的平行于 y 轴的. #include<cstdio> ...

  8. Apache Kafka 0.9消费者客户端

    当Kafka最初创建时,它与Scala生产者和消费者客户端一起运送.随着时间的推移,我们开始意识到这些API的许多限制.例如,我们有一个“高级”消费者API,它支持消费者组并处理故障转移,但不支持许多 ...

  9. checkstyle简单使用说明

    checkstyle对检查代码规范问题的总结,虽然还不够只能,但已经比较强大.1.Cyclomatic Complexity is X (max allowed is X). 问题说明:圈复杂度过高. ...

  10. javascript正则表达式定义(语法)

    正则表达式的2种定义方法:一种是直接调用RegExp(),第二种是直接用字面量来定义,即var re = /正则规则/; 2种定义方法本质都是调用RegExp()方法 在调用同一段正则代码的时候,EC ...