如何将一个python的URL列表传递给Django模板并使它们可以点击?

Tar*_*are 4 python django

我有一个网址的python列表,如下所示:

list = ['/abc/1', 
       '/abc/3',
       '/abc/5',
       ...
       ]
Run Code Online (Sandbox Code Playgroud)

所有这些网址都遵循我在urls.py中定义的网址格式'abc/n /'.现在我想将此列表传递给django模板,使得此列表的每个元素都可以单击并在单击它们时运行与其url模式对应的函数.我尝试将锚标记硬编码到此列表的每个元素.例如

for i in range (len(list)):    
    list[i] = "<a href = \'" + list[i] + "\'>click me</a>"
Run Code Online (Sandbox Code Playgroud)

然后HttpResponse()通过上下文通过函数将此列表发送到模板.但是这显示了原始文本格式的列表项而不是链接

Azs*_*sgy 9

这里发生的事情是django是安全的并且逃避你的HTML.这是为了防止XSS vunerabilities.当用户可以将恶意HTML插入您的站点时,就会发生这种漏洞.

现在,您可以将其关闭,但之后您可能会遇到上述安全问题.

您要做的是在模板中生成html,而不是在代码中生成html(这就是模板的用途):

{% for link in links %}
<a href="{{ link }}">click me</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

现在您只需要传递links模板上下文!