前言

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>

最新文章

  1. 在Visual Studio Code中配置GO开发环境
  2. 从零点壹开始学JAVA(DAY 1 笔记)&lt;补充记录&gt;
  3. Java公众号推荐 - BeJavaGod
  4. Spring中Ordered接口简介
  5. Asp.net MVC的Model Binder工作流程以及扩展方法(3) - DefaultModelBinder
  6. js获取某个ID的class名称
  7. winmail服务器启动失败 无法启动
  8. php实现上传图片保存到数据库的方法
  9. When to use Class.isInstance() &amp; when to use instanceof operator?
  10. System.Drawing.Graphics中比较重要的几个方法
  11. Nancy学习
  12. 关于EasyUI中DataGrid控件的一些使用方法总结
  13. ABP官方文档翻译 5.4 SwaggerUI集成
  14. [ HOJ 2713]Matrix1[网络流] 最大点权独立集问题
  15. Python小代码_1_九九乘法表
  16. python 编码形式简单入门
  17. iOS 防止离屏渲染为 image 添加圆角
  18. http协议和telnet指令讲解
  19. vue中的v-cloak
  20. 剑指offer(48)不用加减乘除做加法

热门文章

  1. Gitea 使用方法
  2. TextView实现文字水平滚动效果
  3. Dictionary不可以迭代修改值
  4. MySQL的统计总数count(*)与count(id)或count(字段)的之间的各自效率性能对比
  5. json工具类(一)——alibaba包
  6. 【BZOJ4944】[NOI2017]泳池(线性常系数齐次递推,动态规划)
  7. Linux(01):linux的起源、应用场景和学习目标
  8. NetCore HttpClient The SSL connection could not be established, see inner exception
  9. TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗
  10. oracle 自增序列实现 可作为主键