Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/django-template-filter-urlizetrunc.html

django 模板过滤器 urlizetrunc 包含 URL 的文本进行截断和格式化详解,使用方法及示例

Django 模版过滤器详解 Django 模版过滤器详解


在 Django 中,模板过滤器是用于在模板中对变量进行处理和格式化的功能。urlizetrunc 是 Django 提供的一个内置模板过滤器之一,用于将一个包含 URL 的文本进行截断和格式化,使其在页面上呈现为可点击的链接,并且超过一定长度时会截断并显示省略号。

语法

{{ value|urlizetrunc:length }}
  • value : 要处理的文本或变量,通常是包含 URL 的字符串。
  • length : 截断后的长度,即显示链接文本的最大字符数。如果链接文本超过该长度,将会截断并显示省略号。

作用

urlizetrunc 过滤器的作用是让包含 URL 的文本在页面上更加美观和易于阅读,当文本过长时,截断并显示链接的一部分,同时在显示部分的结尾处添加省略号。

使用方法和使用场景

使用方法很简单,在模板中通过管道符 | 将要处理的文本或变量传递给 urlizetrunc 过滤器,并指定截断后的长度。这个过滤器在显示博客文章、新闻摘要等场景下非常实用,可以将较长的 URL 文本截断,以便在页面上节省空间,同时保持信息的可读性。

现在,让我们结合一个代码示例来更好地理解 urlizetrunc 的使用:

假设我们有一个 Django 视图,将一个包含较长 URL 的字符串传递给模板:

# views.py

from django.shortcuts import render

def my_view(request):
    long_url = "https://www.example.com/very/long/url/that/might/be/annoying/to/display/in/full"
    return render(request, 'my_template.html', {'long_url': long_url})

然后,在模板中使用 urlizetrunc 过滤器对这个长 URL 进行处理:

<!-- my_template.html -->

<!DOCTYPE html>
<html>
<head>
    <title>URL Truncation Example</title>
</head>
<body>
    <h1>Truncated URL:</h1>
    <p>{{ long_url|urlizetrunc:40 }}</p>
</body>
</html>

在这个示例中,我们指定了 urlizetrunc:40,即将 long_url 在显示时截断为 40 个字符。当我们在浏览器中查看页面时,输出将会是:

Truncated URL:
<a href="https://www.example.com/very/long/url/that/might/be/..." rel="nofollow">https://www.example.com/very/long/url/that/might/be/...</a>

注意:截断的文本将自动添加到一个 <a> 标签中,这个链接可以点击,并且 rel="nofollow" 属性会阻止搜索引擎跟踪这个链接。

如此一来,我们在页面上就只显示了前 40 个字符,并且可以通过链接访问完整的 URL,同时显示了省略号以表示被截断的部分。

这样,我们就使用了 urlizetrunc 过滤器来处理包含 URL 的文本,使其在页面上呈现得更加美观和易读,同时提供完整的 URL 访问功能。

在Django中,truncatewords是一个常用的模板过滤器,用于对文本进行截断,保留指定数量的单词,并在末尾添加省略号。作用trun ...
在Django模板中,truncatechars_html是一个内置的模板过滤器,用于截断包含HTML标签的文本内容。常见的使用场景包括:新 ...
在Django模板中,ljust是一个有用的过滤器,用于对字符串进行格式化。我们可以这样做:在视图中,我们将变量name传递给模板:输出的结 ...
在Django模板中,过滤器(filter)是一种用于修改模板变量输出的功能。使用方法假设在Django模板中,我们有一个日期对象my_da ...
在Django中,urlencode是一个常用的模板过滤器,用于对URL中的参数进行编码。表单提交:当表单中的输入内容作为URL参数传递给服 ...