Ser*_*nko 16 python django django-templates
在我的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)
Run Code Online (Sandbox Code Playgroud)
渲染后产生: http://127.0.0.1/test?a=1&b=2
请注意,&符是HTML编码为"&".解决这个问题的一种方法是将每个参数分别传递给我的模板并在模板中构建url,但是我想避免这样做.
有没有办法禁用上下文参数的HTML编码或至少避免编码&符号?
Jon*_*nan 21
要为单个变量关闭它,请使用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)
Run Code Online (Sandbox Code Playgroud)
或者,要完全从Python代码中关闭autoescaping,请在初始化时使用autoescape参数Context:
c = Context({
'foo': 'bar',
'url': 'http://127.0.0.1/test?a=1&b=2',
}, autoescape=False)
Run Code Online (Sandbox Code Playgroud)
如果你想在那里做一些in-template选项,如何关闭文档中的[自动HTML转义]部分.
| 归档时间: |
|
| 查看次数: |
6409 次 |
| 最近记录: |