前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python测试开发django-70.自定义过滤器filter

python测试开发django-70.自定义过滤器filter

作者头像
上海-悠悠
发布2019-11-14 16:18:50
4050
发布2019-11-14 16:18:50
举报

前言

django的模板有很多内置的过滤器,可以满足一些常见的需求,如果有些需求内置过滤器无法满足,那么我们需要自己写一些过滤器了。

自定义过滤器

先在app下新建一个 templatetags 目录,注意了必须是 templatetags 目录,别瞎命名最后又说不成功! 接着新建一个 myfilter.py 文件,这个文件可以随意命名了。

先保证已经在 setting.py 里面注册过你的 app 了

代码语言:javascript
复制
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',              # 内置后台管理系统
    'django.contrib.auth',               # 内置用户认证系统
    'django.contrib.contenttypes',       # django的ORM框架
    'django.contrib.sessions',           # session会话功能
    'django.contrib.messages',           # 消息提示功能
    'django.contrib.staticfiles',        # 查找静态资源路径
    'yoyo',                          # 你自己的app应用
]

编写过滤器

在 myfilter.py 文件按以下格式编写自己定义的过滤器名称,name=“replace”,这个 replace 就是你自己定义的过滤器了。 以下函数实现的功能是替换 value 的指定 arg 字符为 ~

代码语言:javascript
复制
from django import template

register = template.Library()

@register.filter(name='replace')
def myreplace(value, arg):
    return value.replace(arg, '~')

模板引用

在模板中引用自定义的过滤器时,必须先 load 加载自己定义的过滤器文件

{% load myfilter %}

{{ hello | replace:”!” }} 实现的功能是把hello 对应的字符串里面的 !替换成 ~

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="referrer" content="no-referrer" />
    <title>Title</title>
</head>
<body>

{% load myfilter %}

<div>
    <p><span>hello:</span>{{ hello | replace:"!" }}</p>
</div>

</body>
</html>

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 自定义过滤器
  • 编写过滤器
  • 模板引用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档