一、关于自定义

自定义的引入

内置函数--------->自定义函数

内置模块--------->自定义模板

内置过滤器------>自定义过滤器

内置标签--------->自定义标签

二、文件路径配置

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

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

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

  2. Django自定义过滤器及标签

    一.自定义过滤器 1.自定义过滤器文件存放位置 在APP应用下创建名为templatetags(该文件夹名固定)的文件包(包含__init__.py文件) 注意APP必须在setting中注册 即在s ...

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

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

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

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

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

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

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

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

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

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

  8. Django框架模板语法传值-过滤器-标签-自定义过滤器,标签,inclusion_tag

    目录 一:模版语法传值 1.模板语法两个书写方式 2.模板语法 3.测试模板语法是否可以把python支持的基本数据类型传入到前端 4.index.html 5.django模板语法取值方式 二:过滤 ...

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

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

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

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

随机推荐

  1. 如何让一个 div 左右各空一定距离然后 div 占满剩下的宽度?

    如何让一个 div 左右各空一定距离然后 div 占满剩下的宽度? 最开始想到的方法就是 div 宽度取 n%, style 设置 margin:auto. 但是这样有一个问题,一定距离是根据 n 的 ...

  2. 吴恩达老师机器学习课程chapter01——序言+回归

    吴恩达老师机器学习课程01--序言+线性回归 本文是非计算机专业新手的自学笔记,欢迎指正与其他任何合理交流. 本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第一章.第二章.第四 ...

  3. Jquery 如何替换html字符串中标签属性值 ??

    如何利用JQuery 替换HTML字符串中的属性值呢? 如 html 字符串有很多 img标签,现在需要修改 img的src值 var html="<div style="t ...

  4. apk反编译工具--dex2jar

    dex2jar 2.1 https://github.com/pxb1988/dex2jar/releases 链接: https://pan.baidu.com/s/1ZU16mPE_QNhzWxF ...

  5. JS中有关闭包的相关内容及介绍

    1 var obj = (function (arg) { 2 // 这里就是一个简单的闭包,将局部变量 test和函数fn1 return出去 3 // 这样obj就可以拿到函数内部定义的变量在函数 ...

  6. (linux笔记)开放防火墙端口

    关闭防火墙 CentOS 7.RedHat 7 之前的 Linux 发行版防火墙开启和关闭( iptables ): 即时生效,重启失效 #开启 service iptables start #关闭 ...

  7. 数据驱动DDT(Data-Driven Tests):测试数据的参数化

    准备第三方库: 首先安装ddt库,其次在脚本中引入ddt 打开官网 https://pypi.org/project/ddt/ from ddt import ddt,data,unpack @ddt ...

  8. 解决vuex“状态管理调用报错”报错为:"Uncaught ReferenceError: mapactions is not defined"

    报错: 源码: <script> import Vuex from 'vuex'; import {mapActions,mapGetters} from 'vuex'; // conso ...

  9. LCP 34. 二叉树染色

    class Solution: def maxValue(self, root: TreeNode, k: int) -> int: def dfs(root): # 空节点价值全为0 res ...

  10. kubectl使用方法及常用命令小结

    Kubectl 是一个命令行接口,用于对 Kubernetes 集群运行命令.kubectl 在 $HOME/.kube 目录中寻找一个名为 config 的文件. kubectl安装方法详见:htt ...