我有一个网址的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()通过上下文通过函数将此列表发送到模板.但是这显示了原始文本格式的列表项而不是链接
这里发生的事情是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模板上下文!
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |