相关疑难解决方法(0)

如何防止Django模板中的自动转义?

在文档中它说:

唯一的例外是已经标记为"安全"的变量,无论是通过填充变量的代码,还是因为它已经应用了安全或转义过滤器.

"填充变量"部分如何工作?我实际上正在寻找一种方法来在视图中声明模板标签是安全的.我不知何故认为让设计师决定不是一个好主意.我的同事只要在"认为"这是一个好主意时就会添加它.

https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs

python django templates escaping

12
推荐指数
2
解决办法
1万
查看次数

如何禁用 Django 从视图中自动转义的功能?

Django 说有 3 种方法可以关闭自动转义:

  1. |safe在变量之后使用
  2. 在块内使用{% autoescape on %}and{% endautoescape %}
  3. 使用类似的上下文context = Context({'message': message}, autoescape=False)

(1)和(2)工作正常。但我遇到的情况是,我有模板来生成纯文本推送通知,并且我有大量模板需要构建和维护。我可以遍历所有内容并将{% autoescape on %}{% endautoescape %}标签放入其中,但是 (3) 应该允许我在视图中的一行中完成此操作。

模板:

{% block ios_message %}{{message}}{% endblock %}
Run Code Online (Sandbox Code Playgroud)

风景:

message = u"'&<>"
context = Context({'message': message}, autoescape=False)
render_block_to_string(template_name, 'ios_message', context)
Run Code Online (Sandbox Code Playgroud)

输出:

u'&#39;&amp;&lt;&gt;
Run Code Online (Sandbox Code Playgroud)

block_render.py 的代码来自此处:https ://github.com/uniphil/Django-Block-Render/blob/master/block_render.py 。我从那里就按原样使用它。

有谁知道什么给?

django escaping django-templates

5
推荐指数
1
解决办法
5281
查看次数

标签 统计

django ×2

escaping ×2

django-templates ×1

python ×1

templates ×1