Django自定义过滤器及标签
一、自定义过滤器
1.自定义过滤器文件存放位置
在APP应用下创建名为templatetags(该文件夹名固定)的文件包(包含__init__.py文件)
注意APP必须在setting中注册 即在setting文件中的INSTALLED_APPS列表中添加‘teacher’这个元素 不添加的话会影响后面自定义过滤器的注册
在templatetags文件夹下创建teacher_filter.py文件

2.自定义过滤器本质是一个自定义的函数 只能接受一个或两个参数
在teacher_filter文件内自定义过滤器 该过滤器表示将传进来的数字转换成对应的中文性别

3.注册自定义过滤器
在teacher_filter文件中即可注册
注册时可以对自定义的过滤器进行重命名 register.filter('aaa', my_male)

4.自定义过滤器的使用
在模板中导入自定义的过滤器,用法同Django自带的过滤器

5.自定义过滤器传入两个参数
使用方法是在模板中自定义的过滤器后加 :‘en’

(注意新增文件后要重启Django服务)
二、简单标签
1.自定义标签代码存放地方同自定义过滤器,包括APP注册,和标签注册

2.自定义标签使用

3.自定义标签传值 在模板中使用标签名时空格加参数即可 如{% my_simptag ‘%H-%m-%d’ }
4.自定义标签使用模板接受到的视图变量
即在视图调用模板,模板引用自定义标签,要将视图传递过来的变量赋给自定义标签
在自定义标签中注册视图变量名即可

contxt即视图传递过来的值
三、包含标签
1.视图调用多个模板时如果视图传递给模板的参数内容很多,比如一个列表,

要将这个列表重新进行渲染(通过调用另一个模板进行渲染),就会用到包含标签
2.包含标签的定义同简单标签,注册包含标签用 @register.inclusion_tag('模板路径')

装饰器在调用myhobby模板时还会注册my_hob标签
3.myhobby模板 即对列表进行渲染的模板

4.使用
在模板中load包含标签,然后再需要展示的位置使用

(标签的使用和过滤器的使用区别,标签名配合%在参数名前面并用空格隔开,过滤器名在参数名后面用|隔开,大括号的对数也有区别)

Django自定义过滤器及标签的更多相关文章
- django自定义过滤器和标签
1.自定义过滤器和标签的流程: 1.在某个app下创建一个名为templatetags(必需,且包名不可变)的包.假设我们在名为app01的app下创建了一个templatetags的包,并在该包下创 ...
- 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 一个是项目默 ...
- 一、变量.二、过滤器(filter).三、标签(tag).四、条件分支tag.五、迭代器tag.六、自定义过滤器与标签.七、全系统过滤器(了解)
一.变量 ''' 1.视图函数可以通过两种方式将变量传递给模板页面 -- render(request, 'test_page.html', {'变量key1': '变量值1', ..., '变量ke ...
- Web框架之Django_04 模板层了解(过滤器、标签、自定义过滤器、标签、inclusion_tag、模板的继承与导入)
摘要: 模版层(模板语法) 模板语法 过滤器 标签 自定义过滤器.标签 inclusion_tag 模板的继承 模板的导入 一.模板语法: 常用语法:{{ }} 变量相关{% %} ...
- 自定义过滤器和标签 & 静态文件相关
自定义过滤器和标签 1.在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建templatetags模块(模块名 ...
随机推荐
- UE4C++定义属性修饰符总结
1.BlueprintAssignable 暴露该属性来在蓝图中进行赋值,用于绑定多播委托 2.BlueprintCallable 用于从蓝图中调用C++原生函数 3.BlueprintReadO ...
- python内置函数 和模块函数总结
1.内置函数(无需导入)long() 函数将数字或字符串转换为一个长整型.len() 统计元素个数print() 打印,输出input() 输入,或阻塞程序运行type 获取类型range 产生连续的 ...
- CSS初识盒子
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- OO电梯调度
告别了三次奇妙无比的求导作业之后,我们就开始搭建一部自己的电梯了.相信我们不同同学的电梯运行方式肯定各具特色吧,但值得肯定的是,在艰苦的走完了三次电梯逐步改进的作业之后,我们的电梯在正常情况下应该是可 ...
- linux下压力测试工具ab的使用
一.安装 [root@node2 logs]# yum install httpd-tools 已加载插件:fastestmirror Loading mirror speeds from cache ...
- JAVA8 Stream集合操作:中间方法和完结方法
StreamLambda为java8带了闭包,这一特性在集合操作中尤为重要:java8中支持对集合对象的stream进行函数式操作,此外,stream api也被集成进了collection api, ...
- jquery花式图片库——jqFancyTransitions
http://www.html580.com/3785 https://yq.aliyun.com/ziliao/4390 使用方法调用插件js文件: <script src="js/ ...
- 【codelife 阿里技术文章分享——读后感】
目前看到的几篇比较有感触的文章,分别是: 前端Leader如何做好团队规划?阿里内部培训总结公开 ——>这里会有关于针对技术项目如何做规划的一些指导,非常有价值 程序员吃的是青春饭?本质上取 ...
- 执行python文件报错SyntaxError: Non-ASCII character '\xe8' in file, but no encoding declared
在文件头部加上: # -*- coding: utf-8 -*
- 48-设置tomcat虚拟路径的两种方法(Eclipse、tomcat、IDEA)
设置tomcat虚拟路径的两种方法(Eclipse.tomcat.IDEA) 三种方式设置虚拟服务器路径如果我们要实现一个上传文件的功能,但是又想要上传的文件不会随着自己web服务器的重启而不能访问了 ...