python测试开发django-70.自定义过滤器filter
2024-09-04 09:04:25
前言
django的模板有很多内置的过滤器,可以满足一些常见的需求,如果有些需求内置过滤器无法满足,那么我们需要自己写一些过滤器了。
自定义过滤器
先在app下新建一个 templatetags 目录,注意了必须是 templatetags 目录,别瞎命名最后又说不成功!
接着新建一个 myfilter.py 文件,这个文件可以随意命名了。
先保证已经在 setting.py 里面注册过你的 app 了
# 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 字符为 ~
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 对应的字符串里面的 !替换成 ~
<!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>
最新文章
- 在Visual Studio Code中配置GO开发环境
- 从零点壹开始学JAVA(DAY 1 笔记)<;补充记录>;
- Java公众号推荐 - BeJavaGod
- Spring中Ordered接口简介
- Asp.net MVC的Model Binder工作流程以及扩展方法(3) - DefaultModelBinder
- js获取某个ID的class名称
- winmail服务器启动失败 无法启动
- php实现上传图片保存到数据库的方法
- When to use Class.isInstance() &; when to use instanceof operator?
- System.Drawing.Graphics中比较重要的几个方法
- Nancy学习
- 关于EasyUI中DataGrid控件的一些使用方法总结
- ABP官方文档翻译 5.4 SwaggerUI集成
- [ HOJ 2713]Matrix1[网络流] 最大点权独立集问题
- Python小代码_1_九九乘法表
- python 编码形式简单入门
- iOS 防止离屏渲染为 image 添加圆角
- http协议和telnet指令讲解
- vue中的v-cloak
- 剑指offer(48)不用加减乘除做加法
热门文章
- Gitea 使用方法
- TextView实现文字水平滚动效果
- Dictionary不可以迭代修改值
- MySQL的统计总数count(*)与count(id)或count(字段)的之间的各自效率性能对比
- json工具类(一)——alibaba包
- 【BZOJ4944】[NOI2017]泳池(线性常系数齐次递推,动态规划)
- Linux(01):linux的起源、应用场景和学习目标
- NetCore HttpClient The SSL connection could not be established, see inner exception
- TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗
- oracle 自增序列实现 可作为主键