gpt4 book ai didi

python - 在 Django 中使用 Context 时如何禁用 HTML 编码

转载 作者:太空狗 更新时间:2023-10-29 17:02:41 24 4
gpt4 key购买 nike

在我的 Django 应用程序中,我使用模板来构造电子邮件正文,其中一个参数是 url,请注意 url 中有两个由 & 符号分隔的参数。

t = loader.get_template("sometemplate")
c = Context({
'foo': 'bar',
'url': 'http://127.0.0.1/test?a=1&b=2',
})
print t.render(c)

渲染后生成:http://127.0.0.1/test?a=1&b=2

请注意,& 符号在 HTML 中编码为“&”。解决该问题的一种方法是将每个参数分别传递到我的模板并在模板中构建 url,但我想避免这样做。

有没有办法禁用上下文参数的 HTML 编码,或者至少避免对 & 符号进行编码?

最佳答案

要为单个变量关闭它,请使用 mark_safe:

from django.utils.safestring import mark_safe

t = loader.get_template("sometemplate")
c = Context({
'foo': 'bar',
'url': mark_safe('http://127.0.0.1/test?a=1&b=2'),
})
print t.render(c)

或者,要完全关闭 Python 代码的自动转义,use the autoescape argument when initialising a Context :

c = Context({
'foo': 'bar',
'url': 'http://127.0.0.1/test?a=1&b=2',
}, autoescape=False)

How to turn [Automatic HTML escaping] off文档的一部分涵盖了一些模板内选项,如果您愿意的话。

关于python - 在 Django 中使用 Context 时如何禁用 HTML 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/237235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com