Django基础(四)———模板常用过滤器

前言

上篇文章给大家介绍了DTL模板的部分知识点

这篇文章继续带大家深入理解Django框架中的模板过滤器


一、模板常用过滤器

1.add

将传进来的参数添加到原来的值上面。这个过滤器会尝试将值和 参数转换成整形然后进行相加。如果转换成整形过程中失败了,那么会将值和参数进行拼接。如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表。

{{ valueladd:"2" }}

如果value是等于4,那么结果将是6。如果value是等于一个普通的字符串,比如 abc,那么结果将是abc2。

2.cut

移除值中所有指定的字符串。类似于python中的replace(args,"")。

3.date

将一个日期按照指定的格式,格式化成字符串。

4.default

如果值被评估为False。比如[,"",None,{}等这些在 if判断中为Fa1se的值,都会使用default过滤器提供的默认值。

{{ valueldefault:"nothing" }}

如果value是等于一个空的字符串。比如"",那么以上代码将会输出 nothing。

5.default_if_none

如果值是None,那么将会使用 defau1t_if_none提供的默认值。这个和 default有区别,defau1t是所有被评估为False的都会使用默认值。而 defau1t_if_none 则只有这个值是等于None的时候才会使用默认值。

{{ valueldefault_if_none:"nothing" }}

如果va1ue是等于""也即空字符串,那么以上会输出空字符串l。如果value是一个None值,以上代码才会输出nothing。

6.first

返回列表/元组/字符串中的第一个元素。

{{ valuelfirst }}

如果 value 是等于['a','b','c’],那么输出将会是a。

7.last

返回列表/元组/字符串中的最后一个元素。

{{ valuellast }}

 如果value 是等于['a','b','c’],那么输出将会是c。

8.floatformat

使用四舍五入的方式格式化一个浮点类型。如果这个过滤器没有传递任何参数。那么只会在小数点后保留一个小数,如果小数后面全是0,那么只会保留整数。当然也可以传递一个参数,标识具体要保留几个小数。

1.如果没有传递参数:

2.如果传递参数:

9.join

类似与Python中的 join,将列表/元组/字符串用指定的字符进行拼接。

{{ valueljoin:"/" }}

如果 value 是等于['a','b','c"],那么以上代码将输出 a/b/c.

10.length

获取一个列表/元组/字符串/字典的长度。

{{ value|length }}

如果value 是等于['a','b','c’],那么以上代码将输出3。如果value为None,那么以上将返回0。

11.lower

将值中所有的字符全部转换成小写

{{ value |lower }}

如果value是等于Hello world。那么以上代码将输出hello world。

12.upper

类似于lower,只不过是将指定的字符串全部转换成大写。

13.random

在被给的列表/字符串/元组中随机的选择一个值。

{{ value | random }}

如果 value 是等于['a’,'b',"c"],那么以上代码会在列表中随机选择一个,  

14.safe

标记一个字符串是安全的。也即会关掉这个字符串的自动转义。

{{value|safe}}

如果value是一个不包含任何特殊字符的字符串,比如<a>这种,那么以上代码就会把字符串正常的输入。如果value是一串html代码,那么以上代码将会把这个html代码渲染到浏览器中。

15.slice

类似于 Python中的切片操作。

{{ some_listlslice:"2:" }}

以上代码将会给some_1ist从2开始做切片操作。

16.stringtags

删除字符串中所有的 html标签。

{{ value|striptags }}

如果value是<h1>hello world</h1>那么以上代码将会输出hello world。

17.truncatecharts

如果给定的字符串长度超过了过滤器指定的长度。那么就会进行切割,并且会拼接三个点来作为省略号。

{{ value|truncatechars:5 }}

如果value是等于 北京欢迎您~,那么输出的结果是北京.….。可能你会想,为什么不会北京欢迎您..呢。因为三个点也占了三个字符所以 北京+三个点的字符长度就是5。

18.truncatecharts html

类似于 truncatechars,只不过是不会切割html标签。

{ value| truncatechars:5}}

如果va1ue是等于<p>北京欢迎您~</p>,那么输出将是<p>北京...</p>。

二、完整代码

编写视图函数

#app应用 views.py中
def filter(request):greet = "Hell World, Hello Django"context={'greet':greet,'date':datetime.now(),'profile':"",'list':['a','b','c'],'html':'<h1>你好</h1>'}return render(request,template_name='GLQ.html',context=context)

编写路由

path('filter', views.filter, name='filter'),

编写html

#GLQ.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>你好</title>
</head>
<body><p>{{ greet|cut:" " }}</p>
<p>{{ date|date:"Y-m-d" }}</p>
<p>个人简介:{{ profile|default:'这个人很懒,什么都没留下' }}</p>
<p>{{ list|join:"/" }}</p>
<p>{{ list|length }}</p>
<p>{{ greet|lower }}</p>
<p>{{ list|random }}</p>
<p>{{ html|safe }}</p>
<p>{{ list|slice:"2:" }}</p>
<p>{{ html|striptags }}</p>
<p>{{ greet|truncatechars:5 }}</p>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/bicheng/89432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内MCP服务器搜索引擎有哪些?MCP导航站平台推荐

在人工智能技术蓬勃发展的今天&#xff0c;AI模型与外部工具和服务的交互能力正成为推动技术进步的关键。AIbase&#xff08;<https://mcp.aibase.cn/>&#xff09;作为一个专注于MCP(Model Context Protocol&#xff0c;模型上下文协议)服务器的集合平台&#xff0c;为全…

Python中with的作用和用法

在这里我们来详细解释一下Python中非常重要的 with 语句。 我会从 “为什么需要它” 开始&#xff0c;然后讲解 “它是什么以及如何使用”&#xff0c;最后深入到 “它的工作原理” 和 “如何自定义”。1. 为什么需要 with 语句&#xff1f;(The Problem) 在编程中&#xff0c;…

缓存雪崩、缓存穿透,缓存击穿

Redis是一个完全开源免费的高性能非关系型&#xff08;NOSQL&#xff09;的key-value数据库。 Redis不可能把所有的数据都缓存起来(内存昂贵且有限)&#xff0c;所以Redis需要对数据 设置过期时间&#xff0c;并采用的是惰性删除定期删除两种策略对过期键删除。Redis对过期键的…

springmvc跨域解决方案

在Spring MVC中处理跨域请求&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;通常涉及到配置HTTP响应头&#xff0c;以允许来自不同源的请求。Spring MVC提供了多种方式来配置CORS&#xff0c;包括全局配置和局部配置。 使用CrossOrigin注解 在控制器的…

btstack移植之安全配对(二)

3.13.3 Legacy配对首先&#xff0c;我们回复的paring response中&#xff0c;可以看到我们不支持secure connection&#xff0c;所以我们走的是legacy配对模式。图3-74 secure连接不支持然后&#xff0c;master在pairing confirm包中回复了confirm value。图3-75 master发送con…

FRP配置( CentOS 7 上安装 FRP教程 )

** 如果你们公司没有公网IP&#xff0c;但是又想实现内网穿透&#xff0c;远程调用接口&#xff0c;在家也能调用公司服务器&#xff0c;但是nkg ssl有问题&#xff0c;花生壳坑壁&#xff0c;那么FRP是你最佳的选择&#xff01;&#xff01;&#xff01;** 不过有个前提&#…

第三次mysql作业

建立库建立mydb11_syu库2.创建s表&#xff0c;创建sc表二&#xff0e;插入数据向s表插入数据2.向sc表插入数据三&#xff0e;查询1.分别查询student表和score表的所有记录2.查询student表的第2条到5条记录3.从student表中查询计算机系和英语系的学生的信息4.从student表中查询年…

不同场景下git指令的搭配

添加账号 git config --global user.name "YourName" git config --global user.email "your_emailexample.com"设置 Git 默认分支名称为 main&#xff1a; git config --global init.defaultBranch main初始化仓库&#xff1a; git init配置SSH 密钥 如果…

NLP——迁移学习

一、迁移学习的概念 1.预训练模型(Pretrained model) 定义: 简单来说别人训练好的模型。一般预训练模型具备复杂的网络模型结构&#xff1b;一般是在大量的语料下训练完成的。 2.微调(Fine-tuning) 定义:一般是对预训练语言模型&#xff0c;进行垂直领域数据的微调&#xff0c;…

Ubuntu 安装

文章目录硬件准备下载 Ubuntu 镜像创建可启动 USB从 USB 驱动器启动安装 Ubuntu不要忘记更新&#xff01;用了十多年的笔记本&#xff0c;手边正好有个500G的固态&#xff0c;准备换上。考虑到机器的硬件配置&#xff0c;现在使用windows10实在是有点卡&#xff0c;ubuntu却刚好…

【46】MFC入门到精通——MFC显示实时时间,获取系统当前时间GetCurrentTime()、获取本地时间GetLocalTime()

文章目录1 MFC获取时间方法方法一&#xff1a;获取系统当前时间GetCurrentTime()方法二&#xff1a;获取本地时间GetLocalTime()使用GetTickCount()获取程序运行时间2 MFC显示实时时间 使用方法2.1 获取时间2.2 类向导 添加定时器函数 OnTimer2.3 初始化 设置定时器2.4 定时器函…

Linux717 SWAP扩容;逻辑卷条带化

root192.168.235.20s password:┌────────────────────────────────────────────────────────────────────┐│ • MobaXterm 20.0 • ││ …

人类社会发展过程中的熵增定律

引子研究美国罗斯福新政期间的法案为什么会对美国经济恢复起作用&#xff1f;与千金买马骨和移木赏金之间的区别与联系&#xff1f;以下为豆包 AI回答一、罗斯福新政法案对美国经济起作用的原因罗斯福新政&#xff08;1933-1939年&#xff09;通过一系列政策应对大萧条&#x…

Spring-AI系列-入门篇-核心概念、组件和生产要素

原文-Spring AI知识库&#xff0c;欢迎大家评论互动 师父领进门&#xff0c;修行靠自己。 Spring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design an…

从浏览器到服务器:TCP 段的网络传输之旅

本文以简化的网络架构为例&#xff0c;详细介绍了当你在浏览器中输入网址&#xff08;例如www.google.com&#xff09;并按下回车键后&#xff0c;TCP段的完整传输过程。我们将探讨DNS解析、ARP、TCP/IP封装、PAT和路由如何协同工作&#xff0c;将数据从个人电脑通过局域网和广…

HCIE - 云计算拿下后的职业选择如何规划?

Hello&#xff01;大家好&#xff0c;小编是一名专注 IT 领域的资深探索家。我们聊聊HCIE - 云计算&#xff0c;这个认证作为华为认证体系中云计算领域的专家级认证&#xff0c;标志着持有者具备企业级云架构设计、复杂云平台运维及跨场景技术落地能力。但认证本身只是职业进阶…

1-创建Vue3项目

创建Vue3项目前提 已安装 18.3 或更高版本的 Node.js vue 官网 https://vuejs.org/ 创建一个 Vue 应用 ① 新建项目目录&#xff0c;使用 VSCode 打开 VSCode 可安装 Vue-Official 插件协助开发 ② 执行 create vue 指令创建 vue 应用 npm create vuelatest这一指令将…

Codex,Copilot 是什么

Codex是什么 Codex 是 OpenAI 研发的一款专注于代码生成的大型语言模型,它可以根据自然语言描述自动编写程序代码,在软件开发、自动化测试等领域展现出了强大的应用潜力。下面为你详细介绍: 1. 核心功能 代码生成:Codex 能够依据自然语言指令生成代码,像函数、类或者完整…

Typecho插件开发:自定义表单验证规则addRule实战指南

文章目录 Typecho表单验证进阶:为插件和主题添加自定义addRule验证规则 引言 一、Typecho表单验证基础 1.1 Typecho表单系统概述 1.2 addRule方法解析 二、自定义验证规则实现 2.1 创建自定义验证类 2.2 注册自定义验证规则 2.3 使用自定义验证规则 三、高级验证场景实现 3.1 …

数据分布是如何影响目标检测精度的

文章目录一、研究背景与目标模型效果提升数据集优化二、研究问题明细各方向的关联性与核心逻辑1. 高质量数据集的高效筛选与主动学习应用2. 基于推理结果的数据补充与增强方向优化3. 多类别场景下目标尺度与模型精度的关联性4. 损失函数与数据增强对精度的量化影响5. 目标类型专…