一、自定义过滤器

  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自定义过滤器及标签的更多相关文章

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

    1.自定义过滤器和标签的流程: 1.在某个app下创建一个名为templatetags(必需,且包名不可变)的包.假设我们在名为app01的app下创建了一个templatetags的包,并在该包下创 ...

  2. python的Web框架,Django自定义过滤器及标签

    代码布局 有的时候框架给的过滤器不够用,需要自定义一些过滤器,所以就需要我们自己来定义一些过滤器等 自定义代码放置的路径 某个app特用(独有)的 - app 目录下的 templatetags文件夹 ...

  3. Django——5 自定义过滤器及标签

    Django 自定义过滤器 自定义标签 简单标签 包含标签 自定义过滤器 自定义过滤器就是一个带有一个或两个参数的Python 函数: - (输入的)变量的值 —— 不一定是字符串形式. - 参数的值 ...

  4. Django入门--自定义过滤器与标签

    ---恢复内容开始--- 为了让Django找到自定义的模板过滤器和模板标签,需要进行文件路径配置,配置方式分为APP目录下配置和项目路径下配置两种方式: 1.在APP目录下配置:针对某个应用特定的自 ...

  5. 小白学习django第三站-自定义过滤器及标签

    要使用自定义过滤器和标签,首先要设置好目录结构 现在项目目录下建立common的python包 再将common加入到setting.py中的INSTALLED_APP列表中 在common创建目录t ...

  6. Django学习——Django settings 源码、模板语法之传值、模板语法之获取值、模板语法之过滤器、模板语法之标签、自定义过滤器、标签、inclusion_tag、模板的导入、模板的继承

    Django settings 源码 """ 1.django其实有两个配置文件 一个是暴露给用户可以自定义的配置文件 项目根目录下的settings.py 一个是项目默 ...

  7. 一、变量.二、过滤器(filter).三、标签(tag).四、条件分支tag.五、迭代器tag.六、自定义过滤器与标签.七、全系统过滤器(了解)

    一.变量 ''' 1.视图函数可以通过两种方式将变量传递给模板页面 -- render(request, 'test_page.html', {'变量key1': '变量值1', ..., '变量ke ...

  8. Web框架之Django_04 模板层了解(过滤器、标签、自定义过滤器、标签、inclusion_tag、模板的继承与导入)

    摘要: 模版层(模板语法) 模板语法 过滤器 标签 自定义过滤器.标签 inclusion_tag 模板的继承 模板的导入 一.模板语法: 常用语法:{{     }}    变量相关{% %}    ...

  9. 自定义过滤器和标签 & 静态文件相关

    自定义过滤器和标签 1.在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建templatetags模块(模块名 ...

随机推荐

  1. K8s快速入门

    在k8s中所有的内容都抽象为资源,资源实例化之后,叫做对象.一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单 资源清单的格式: apiVersion: ...

  2. springboot的打包方式

    先写一个测试接口 package com.example.demo; import org.springframework.web.bind.annotation.RequestMapping; im ...

  3. js生成带有logo的二维码并保存成图片下载

    生成二维码,需要依赖jquery,先引入一个jquery,然后需要一个插件改变过了jquery-qrcode.js 插件代码(需要的自己打开看): /*! jquery-qrcode v0.14.0 ...

  4. Visual Studio Enterprise 2019序列号

    Visual Studio Enterprise 2019序列号:BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio Professional 2019序列号:NY ...

  5. git 合并冲突 取消合并

    如果有冲突,会出现MERING 使用git merge  --abort命令解决冲突

  6. js 一键复制

    function copyURL(id){ var siteId=$("#siteId").val() var oInput = document.createElement('i ...

  7. Uncaught TypeError: form.attr is not a function 解决办法

    前端form表单提交时遇到个问题,一直报错如下 首先说结论:form是个js对象,不是jQuery对象,不能用jquery对象的方法. 代码是: $(document).ready(function( ...

  8. 电话号自动识别之bug解决汇总

    今天测试一个defect: “联系我们”页显示的电话号码,在不同浏览器显示效果不统一,有些浏览器自动识别电话号码并强制添加了样式. 网络搜索发现,其它website 也有类似问题,例如:http:// ...

  9. 20175126《Java程序设计》第三学习总结

    # 20175126 2016-2017-2 <Java程序设计>第三周学习总结 ##课余收获——利用JAVA编写最简单的斗地主程序 -由于最近身边的朋友都在玩手机上的斗地主小游戏,我也就 ...

  10. oracle中的exists 和 in 用法详解

    以前一直不知道exists和in的用法与效率,这次的项目中需要用到,所以自己研究了一下.下面是我举两个例子说明两者之间的效率问题. 前言概述: “exists”和“in”的效率问题,涉及到效率问题也就 ...