1.Django自带的过滤器filter

views.py中代码

def template_tags(request):
import datetime
content = '三胖content三胖contentSBcontentsbcontentcontentcontentcontentcontent'
title = 'tiTLe'
stus = ['xiaohei', 'xiaobai', 'lhy']
info = {"money":9999}
cur_date = datetime.datetime.now()
name = '小白'
age = 35
return render(request, 'template_tags.html', locals())

前端代码

{% load my_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板标签</title>
</head>
<body>
{# Django自带#}
{# 截取字符串#}
<p>{{ content| truncatechars:30 }}</p>
{# 大写#}
<p>{{ title|upper }}</p>
{# 小写#}
<p>{{ title|lower }}</p>
{# 获取数组长度#}
<p>{{ stus|length}}</p>
{# 切片#}
<p>{{ stus|slice:"0:4"}}</p>
{# 下标取值#}
<p>{{ stus.0 }}</p>
{# 拼接字符串#}
<p>{{ stus|join:'-' }}</p>
{# 字典取值#}
<p>{{ info.money }}</p>
{# 字符串后添加#}
<p>{{ name|add:",你好" }}</p>
{# 整数加#}
<p>{{ age|add:1 }}</p>
{# 格式化时间#}
<p>{{ cur_date | date:"Y-m-d H:i:s" }}</p> {% with class="天马座" %}
<p>{{ class }}</p>
{% endwith %} </body>
</html>

template_tags.html

页面效果

2.Django自定义过滤器filter

1).在子项目(此处在user目录下)的根目录下创建templatetags目录

2).创建my_tags.py文件

3).固定导入

  from django import template

     register = template.Library() # register变量必须这么定义
4).使用装饰器@register.filter修饰自定义的filter方法
from django.template import Library

register = Library()
@register.filter
def mingan(content):
return content.replace("三胖", '小白') @register.filter
def mingan2(content, s):
return content.replace("三胖", s) @register.simple_tag
def mingan3(content, *agrs): # 支持多个参数
for arg in agrs:
content = content.replace(arg, '小白')
return content

5). 在html文件中导入{% load my_tags %}

6). 使用

{{ content| mingan }}    
此函数只有1个参数,管道符|左侧的就是第一个参数传给管道符后的函数
{{ content| mingan2:'大傻子' }}
此函数只有2个参数,管道符|左侧的就是第一个参数传给管道符后的函数,:后是第二个参数
{% mingan3 content 'sb' 'SB' '三胖' %}
此函数支持多个参数

{% load my_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板标签</title>
</head>
<body>
{# 自定义函数#}
<p>{{ content| mingan }}</p>
{# 自定义函数#}
<p>{{ content| mingan2:'大傻子' }}</p>
{% mingan3 content 'sb' 'SB' '三胖' %}
</body>
</html>

template_tags.html

效果如下:

Django基础08篇 filter&tag的更多相关文章

  1. Django 基础05篇 上下文管理和前端代码复用

    一.上下文管理器 在views中重复使用的代码,可以通过上下文管理器(在setting.py文件中的TEMPLATES中配置)中实现,减少代码冗余 上下文管理器的处理流程如下: 1.先走完views里 ...

  2. Django基础-04篇 Django开发前后端联动

    1. 写views views.py代码块 1.在前端以/article/{{ article.id }}这种方式请求后台, 参数配置在urls.py中path('category/<int:i ...

  3. Django基础——Model篇(三)

    一 Django ORM中的概念 ORM —— 关系对象映射,是Object Relational Mapping的简写,是用来简化数据库操作的框架 Django ORM遵循Code Frist原则, ...

  4. Django基础——Model篇(二)

    一 Model连表关系 一对多:models.ForeignKey(其他表)    多对多:models.ManyToManyField(其他表)    一对一:models.OneToOneFiel ...

  5. Django基础第一篇

    目录 1.Django MTV框架简介 2.基础命令创建项目的配置说明 3.前后端交互案例 4.基于数据库实现数据交互增删改查 Django简介 Django框架的设计模式借鉴了MVC的思想,和MVC ...

  6. Django基础07篇 ORM操作

    1.新增(类似数据库操作的insert) # 新增 #方式一: models.Category.objects.create(name='MySQL') #方式二: c = models.Catego ...

  7. Django基础——Model篇(一)

    到目前为止,当程序涉及到数据库相关操作时,我们一般都会这么操作:    (1)创建数据库,设计表结构和字段    (2)使用MySQLdb来连接数据库,并编写数据访问层代码    (3)业务逻辑层去调 ...

  8. Django基础-01篇

    一.Django介绍 flask,FastApi是轻量级服务端开发框架 Django是重量级服务端开发框架 ORM:封装了数据库操作 form:校验请求数据 安装Django: pip install ...

  9. Django基础06篇 分页

    1.导入Django自带的分页类 from django.core.paginator import Paginator 2.分页类的使用 def index(request): # return H ...

随机推荐

  1. 为鸿蒙OS说两句公道话(我对鸿蒙OS的一些看法)

    为鸿蒙说两句公道话 今天看了鸿蒙系统的评测,看完后我感觉很欣慰,为什么这么说 ? 不是很多人吐槽鸿蒙是 Android 套壳吗 ?或者叫鸿蒙 UI 吗?说鸿蒙没有自己的核心技术.看了鸿蒙系统的设计,底 ...

  2. GO学习-(26) Go语言操作mongoDB

    Go语言操作mongoDB mongoDB是目前比较流行的一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. ...

  3. nginx 重定向到系统维护页面

    上周末兄弟项目准备扩展服务器以便提供更好的服务,兄弟项目有一些功能是实时提供到我这边的,需要我这边暂时把对应系统功能屏蔽,因为使用nginx,所以可以直接配置nginx重定向到固定系统维护页面. ng ...

  4. MLIR中间表示和编译器框架

    MLIR中间表示和编译器框架 TensorFlow生态系统包含许多在软件和硬件堆栈的多个级别上运行的编译器和优化器.作为TensorFlow的日常用户,使用不同类型的硬件(GPU,TPU,移动设备)时 ...

  5. 基于Kaggle的图像分类(CIFAR-10)

    基于Kaggle的图像分类(CIFAR-10) Image Classification (CIFAR-10) on Kaggle 一直在使用Gluon's data package数据包直接获得张量 ...

  6. NOIP模拟测试4「礼物·通讯·奇袭」

    礼物. 首先见到期望一定要想dp,看到n的范围无脑想状压, 然后我就只想到这了. dp方程式还是比较好想的,但是我依然想不出来 略经思考   颓题解 依然不会,随便写了个式子 i状态中不含j $f[i ...

  7. C#中怎样使控件随着窗体一起变化大小

    此文原作者为CSDN的 zhouwen5288,原文链接  http://blog.csdn.net/zhouwen5288/article/details/6493835 本人仅作为随笔备忘,转载请 ...

  8. VBS脚本编程(4)——流程控制语句

    分支结构--If .. Then .. Else .. 根据表达式的值有条件地执行一组语句. If condition Then statements [Else elsestatements ] 或 ...

  9. 可扩展的 Web 架构与分布式系统

    作者:Kate Matsudaira 译者:尹星 本文介绍了分布式架构是如何解决系统扩展性问题的粗略方法,适合刚刚入门分布式系统的同学,我把整篇文章翻译如下,希望给你一些启发. 备注:[idea]标注 ...

  10. 【学习】自定义view

    自定义控件其实很简单1/2   Canvas的使用 自定义控件其实很简单1/3   Shader与画布的旋转 自定义控件其实很简单2/3   view的测量 自定义控件其实很简单1/4   FontM ...