Django模板中如何使用slice过滤器进行字符串和列表的切片?

2023-04-09 00:00:00 过滤器 字符串 切片

使用slice过滤器可以对字符串和列表进行切片,其语法如下:

对于列表:

{{ 列表名称|slice:":j:i" }}

其中,j为切片结束索引(不包含),i为步长(默认为1),留空表示取到末尾。

对于字符串:

{{ 字符串名称|slice:"j:i" }}

其中,j为切片开始索引,i为切片结束索引(不包含),留空表示取到末尾。

下面是一个代码演示:

# views.py
from django.shortcuts import render

def index(request):
    my_str = 'pidancode.com'
    my_list = ['p', 'i', 'd', 'a', 'n', 'c', 'o', 'd', 'e']
    return render(request, 'index.html', {'my_str': my_str, 'my_list': my_list})
<!--index.html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Django slice filter demo</title>
</head>
<body>
    <h2>使用slice过滤器切片字符串</h2>
    <p>{{ my_str|slice:":5" }}</p> <!-- 输出pidan -->
    <p>{{ my_str|slice:"5:" }}</p> <!-- 输出code.com -->
    <p>{{ my_str|slice:"5:8" }}</p> <!-- 输出cod -->

    <h2>使用slice过滤器切片列表</h2>
    <p>{{ my_list|slice:":5" }}</p> <!-- 输出['p', 'i', 'd', 'a', 'n'] -->
    <p>{{ my_list|slice:"5:" }}</p> <!-- 输出['c', 'o', 'd', 'e'] -->
    <p>{{ my_list|slice:"2:7:2" }}</p> <!-- 输出['d', 'n', 'o'] -->
</body>
</html>

相关文章