django -- 自定义simpletag 和 filter
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的更多相关文章
- django 自定义过滤器(filter)处理较为复杂的变量的实例
简述:django 在views中有数据需要通过字典(dict)的方式传递给template,该字典中又包含了字典,而且字典中的键值还是一个对象,在template中处理传递过来的数据的时候,字典不能 ...
- django自定义simple_tag和filter
1.自定义simple_tag: 1).在app目录名下创建templatetags目录,并新建__init__.py文件. 2).在templatetags目录下创建任意名字的py文件,例如rema ...
- Django中的tags,母版和继承,组件,静态文件相关,自定义simpletag和自定义inclusion_tag
Tags for <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} &l ...
- python Tags 母板 组件 静态文件相关 自定义simpletag inclusion_tag
一.Tags(一)for 1.基本用法 <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% e ...
- django 自定义标签和过滤器
django 自定义标签和过滤器 Django支持自定义标签和过滤器.起初还不太重视它这项功能,但最近试了试自定义标签.发现django这个功能实在是太爽了. 首先在你项目的一个app中建立一个pyt ...
- Django 自定义过滤器
设定自定义过滤器之前要现在配置文件内把自己项目名在 INSTALLED_APPS 内导入 #已安装的django应用 INSTALLED_APPS = [ 'django.contrib.admin' ...
- Django自定义过滤器
1.首先在在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建templatetags模块(模块名只能是temp ...
- django 自定义过滤器中的坑.
今天在创建自定义过滤器的时候,设置已正常.但是在运行后报: 'filter' is not a valid tag library: Template library filter not found ...
- Django 自定义标签与过滤器报错 No module named 'templatetags'
Django 自定义标签与过滤器报错 按照网上的教程如果想使用自定义的标签与过滤器就得往settings.py中添加下列数据 TEMPLATES = [ { 'BACKEND': 'django.te ...
随机推荐
- GraphQL和RESTful的区别
GraphQL和RESTful的区别 http://graphql.cn/learn/ https://www.cnblogs.com/Wolfmanlq/p/9094418.html http:// ...
- caddy server && caddyfile
This page describes how to configure Caddy using the Caddyfile. Introduction The term "Caddyfil ...
- video4linux(v4l)使用摄像头的实例基础教程与体会(转)
1. video4linux基础相关 1.1 v4l的介绍与一些基础知识的介绍 I.首先说明一下video4linux(v4l). 它是一些视频系统.视频软件.音频软 ...
- Lombok 简单入门
原文地址:Lombok 简单入门 博客地址:http://www.extlight.com 一.前言 Lombok 是一个 Java 库,它作为插件安装至编辑器中,其作用是通过简单注解来精简代码,以此 ...
- Windows下生成自签名证书
最近通过openssl生成了自签名的证书,总结成下面这张图. 说明:下载openssl0.9.8之后解压,然后运行bin\openssl.exe进入openssl运行环境,然后按上图中顺序执行命令.( ...
- 20 几个知名公司的 Java 面试题汇总
查看不同公司新鲜真实的Java面试题,摘自Glassdoor.com 巴克莱投资: 假设有一个 getNextparson() 方法返回 Person 对象,Person 类实现了 comparabl ...
- php 数据库类
<?php /** * 对Yii2数据封装 * @author nike@youfumama.com * @date 2017-03-08 * 抽象类不能被实例化 * eg1: select u ...
- Linux:数据库服务(Mysql安装及链接、远程链接、genelog)
yum search + 服务:查询服务是否存在: yum remove + 服务:卸载服务: 使用 service 操作服务时,服务的名称后要加上字符 d,如启动:service my ...
- postman断言的方法
1.在test添加断言 2.检查response的body中是否包含字符串: tests["Body matches string"] = responseBody.has(&qu ...
- 【转】Jmeter入门:如何建立和使用Jmeter测试环境
一.工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用, 后来又扩充了其它的功能.j ...