1005.Django自定义过滤器及标签
一、关于自定义
自定义的引入
内置函数--------->自定义函数
内置模块--------->自定义模板
内置过滤器------>自定义过滤器
内置标签--------->自定义标签
二、文件路径配置
templates 存放模板的目录
templatetags 存放自定义标签及过滤器的目录
1. 在项目目录下创建个名为common的Python包

2. 将common加入到settings文件中的INSTALLED_APP列表中

3. 在common里面创建目录templatetags,在目录里面创建自定义过滤器及标签文件

注意:templatetags这个目录名字是固定的,而里面的模块是自定义的。
三、自定义过滤器
自定义过滤器就是一个带有一个或者两个参数的python函数:
1、 (输入的)变量的值----不一定是字符串形式。
2、 参数的值----可以有一个初始值,或者完全不要这个参数。
{{ var|foo:"bar"}}
‘var‘:变量;'foo:':过滤器;‘bar’:参数。
例子:
common_extras.py文件中自定义cut和lower的过滤器功能
def mycut(value, arg):
return value.replace(arg, '') def mylower(value):
return value.lower()
注册自定义过滤器
在自定义过滤器后需要进行注册,其方法如下:
django.template.Library.filter()
1. Library.filter()方法需要两个参数:
a. 过滤器的名称(一个字符串对象)
b. 编译的函数------一个Python函数(不要把函数名写成字符串)
2. 可以把register.filter()用作装饰器;
3. 没有声明name参数,Django将使用函数名作为过滤器的名字。

使用自定义过滤器
在模板中使用自定义的过滤器,需要使用{% load %}标签将我们自定义模块加载进来{% load %}声明将会载入给定模块名中的标签/过滤器

四、自定义标签
简单标签django.template.Library.simple_tag()
包含标签django.template.Library.inclusion_tag()
tag()方法有两个参数:
1、模板标记的名称---字符串。如果省略,将使用编译函数的名称。
2、编译的函数---一个Python函数(不要把函数名携程字符串)与过滤器注册一样,也可以将其用作装饰器。
自定义简单标签的例子:
1. 定义一个显示当前时间的简单标签,需要传入时间格式

2. 注册标签时,使用takes_context参数,则可以使用从上下文传入的参数

3. 模板中使用自定义的标签

1005.Django自定义过滤器及标签的更多相关文章
- django自定义过滤器和标签
1.自定义过滤器和标签的流程: 1.在某个app下创建一个名为templatetags(必需,且包名不可变)的包.假设我们在名为app01的app下创建了一个templatetags的包,并在该包下创 ...
- Django自定义过滤器及标签
一.自定义过滤器 1.自定义过滤器文件存放位置 在APP应用下创建名为templatetags(该文件夹名固定)的文件包(包含__init__.py文件) 注意APP必须在setting中注册 即在s ...
- python的Web框架,Django自定义过滤器及标签
代码布局 有的时候框架给的过滤器不够用,需要自定义一些过滤器,所以就需要我们自己来定义一些过滤器等 自定义代码放置的路径 某个app特用(独有)的 - app 目录下的 templatetags文件夹 ...
- Django——5 自定义过滤器及标签
Django 自定义过滤器 自定义标签 简单标签 包含标签 自定义过滤器 自定义过滤器就是一个带有一个或两个参数的Python 函数: - (输入的)变量的值 —— 不一定是字符串形式. - 参数的值 ...
- Django入门--自定义过滤器与标签
---恢复内容开始--- 为了让Django找到自定义的模板过滤器和模板标签,需要进行文件路径配置,配置方式分为APP目录下配置和项目路径下配置两种方式: 1.在APP目录下配置:针对某个应用特定的自 ...
- 小白学习django第三站-自定义过滤器及标签
要使用自定义过滤器和标签,首先要设置好目录结构 现在项目目录下建立common的python包 再将common加入到setting.py中的INSTALLED_APP列表中 在common创建目录t ...
- Django学习——Django settings 源码、模板语法之传值、模板语法之获取值、模板语法之过滤器、模板语法之标签、自定义过滤器、标签、inclusion_tag、模板的导入、模板的继承
Django settings 源码 """ 1.django其实有两个配置文件 一个是暴露给用户可以自定义的配置文件 项目根目录下的settings.py 一个是项目默 ...
- Django框架模板语法传值-过滤器-标签-自定义过滤器,标签,inclusion_tag
目录 一:模版语法传值 1.模板语法两个书写方式 2.模板语法 3.测试模板语法是否可以把python支持的基本数据类型传入到前端 4.index.html 5.django模板语法取值方式 二:过滤 ...
- 一、变量.二、过滤器(filter).三、标签(tag).四、条件分支tag.五、迭代器tag.六、自定义过滤器与标签.七、全系统过滤器(了解)
一.变量 ''' 1.视图函数可以通过两种方式将变量传递给模板页面 -- render(request, 'test_page.html', {'变量key1': '变量值1', ..., '变量ke ...
- Web框架之Django_04 模板层了解(过滤器、标签、自定义过滤器、标签、inclusion_tag、模板的继承与导入)
摘要: 模版层(模板语法) 模板语法 过滤器 标签 自定义过滤器.标签 inclusion_tag 模板的继承 模板的导入 一.模板语法: 常用语法:{{ }} 变量相关{% %} ...
随机推荐
- [CSP-S2019] Emiya 家今天的饭
洛咕 题意:原题面见链接,简单来说就是给出一个\(n*m\)的矩阵,每一行代表同一种烹饪方法,每一列代表同一种食材,\(a_{i,j}\)表示使用第i种烹饪方法第j种食材能做出多少种菜,要求至少做一道 ...
- GIT迁移仓库地址时如何保留分支和历史记录
需求背景 GIT仓库(GitLab)所在服务器因某些原因要关停,相关服务需转移到另外一台机器上. 操作步骤 # clone项目 git clone --mirror http://192.168.12 ...
- 空间数据格式(地理数据格式):GeoJSON(FeatureCollection)与EsriJSON(FeatureSet/ArcGIS格式)
一.FeatureCollection(GeoJSON)格式介绍 https://learn.microsoft.com/en-us/javascript/api/azure-maps-control ...
- 对于小白如何才能学好Java
我们学习任何一种编程语言,不是去无目的的网上找太多的教程,而是首先从宏观了解它的基本思想方法定义概念,从宏观感受它的逻辑与抽象,然后是实践,不断的实践.今天我们看看网上给我们小白的一些学习建议. 一. ...
- es6数组去重、数组中的对象去重 && 删除数组(按条件或指定具体元素 如:id)&& 筛选去掉没有子组件的父组件
// 数组去重 { const arr = [1,2,3,4,1,23,5,2,3,5,6,7,8,undefined,null,null,undefined,true,false,true,'中文' ...
- ant Vue 表格列多数据溢出省略显示
1.实现下图缩式 二次更新:通过customRender设置添加悬浮窗,不需要再设置样式,注意动态数据使用的时候是一个大括号 { title:'业务分类', align:"center&qu ...
- 肖sir__面试第十天课程__模拟面试讲解
一.面对面模拟面试1.打印好简历2.带好手机,录制自己回答的问题,总结,反思(内部),关闭手机和闹钟(外部)3.有笔试题,可以拍照发群里4.可以携带耳塞(适合女生)5.语速流程6.礼貌用语(面试官好, ...
- centos7部署elasticsearch-7.16.2分布式集群(此版本修复了log4j2漏洞)
简介 Elasticsearch 是一个分布式.RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例. 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之 ...
- js下载文件防止白屏
思路:用js创建一个iframe,让后指定src为下载目录. var ifup = document.getElementById("xman-activity-export-downLoa ...
- java使用minio上传下载文件
Minio模板类: @RequiredArgsConstructor public class MinioTemplate implements InitializingBean { private ...