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. 鸿蒙 Android iOS 应用开发对比02

    个人理解,不抬杠 转载请注明原著:博客园老钟 https://www.cnblogs.com/littlecarry/ IOS 把界面抽象成 "控制" Controller:And ...

  2. CVPR2020行人重识别算法论文解读

    CVPR2020行人重识别算法论文解读 Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer 具有特定共享特征变换 ...

  3. 将视频插入视频:CVPR2019论文解析

    将视频插入视频:CVPR2019论文解析 Inserting Videos into Videos 论文链接: http://openaccess.thecvf.com/content_CVPR_20 ...

  4. Wide-Bandgap宽禁带(WBG)器件(如GaN和SiC)市场将何去何从?

    Wide-Bandgap宽禁带(WBG)器件(如GaN和SiC)市场将何去何从? Where Is the Wide-Bandgap Market Going? 电力电子在采用宽禁带(WBG)器件(如 ...

  5. Django(64)频率认证源码分析与自定义频率认证

    前言 有时候我们发送手机验证码,会发现1分钟只能发送1次,这是做了频率限制,限制的时间次数,都由开发者自己决定 频率认证源码分析 def check_throttles(self, request): ...

  6. 【NX二次开发】Block UI 微定位

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  7. 01:osi七层---基于TCP协议的套接字(socket)

    1 : osi 七层,tcp/ip 五层 1 cs架构和bs架构2 互联网3 osi七层 tcp/ip五层 -物理层   -网线.光纤        -数据链路层       -网卡        - ...

  8. Linux面试题(史上最全、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  9. NOIP模拟测试17「入阵曲&#183;将军令&#183;星空」

    入阵曲 题解 应用了一种美妙移项思想, 我们先考虑在一维上的做法 维护前缀和$(sum[r]-sum[l-1])\%k==0$可以转化为 $sum[r]\% k==sum[l-1]\%k$开个桶维护一 ...

  10. Web 动画原则及技巧浅析

    在 Web 动画方面,有一套非常经典的原则 -- Twelve basic principles of animation,也就是关于动画的 12 个基本原则(也称之为迪士尼动画原则),网上对它的解读 ...