python - Django,将HTML放入模板时自动出现HTML "sanitizing",如何停止?

标签 python html django templates html-sanitizing

我对此有点困惑,因为 Django 模板似乎有可选的 HTML 过滤器,但这似乎是自动发生的。我正在制作这个演示应用程序,用户将在其中执行调用 python 脚本的操作来检索一个 url,然后我想在新窗口中显示它。一切都很好,除了当显示返回时,HTML 以这种格式被清理(我在查看页面源代码时看到这个,在浏览器中它显示为常规HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[
si_ST=new Date

这是相同的常规 HTML 版本:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[ si_ST=new Date //]]></script><script type="text/javascript">//<![CDATA[ _G={ST:(si_ST?si_ST:new Date),Mkt:"en-

我只是将它输出到我的 html 模板中的一个基本 block ,该模板没有其他格式(没有 HTML 等),只有 1 个 block 输出到这里......关于为什么会发生这种情况以及如何发生的任何建议显示常规 HTML(这样它会在浏览器中显示页面而不是 HTML 文本)表示赞赏。谢谢

最佳答案

使用安全过滤器:

{{ myvariable|safe }}

如果您需要像这样处理模板的大部分内容(也就是说,如果您发现自己一遍又一遍地使用 |safe),您可以禁用自动转义 whole-sale:

{% autoescape off %}
blah {{myvariable}} blah {{myothervariable}}
{% endautoescape %}

关于python - Django,将HTML放入模板时自动出现HTML "sanitizing",如何停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3551599/

相关文章:

Python, Django 'function' 对象没有属性 'all'

django - Django easy_thumbnails 的默认图像

django - 获取 django 从 TEMPLATE_LOADERS 和 TEMPLATE_DIRS 检测到的所有模板

python - numpy 与 native Python - 最有效的方式

python - 连接 Python 和 MySQL - 入门

jquery 动画功能-单击一个 div 切换另一个

javascript - 选择不提交onchange

python - 使 Python List 以功能方式唯一(map/reduce/filter)

python:强制非相对导入?

html - 声明忽略 parent 填充的背景