Django模板系统为转义html中的内容提供了一些选项(过滤器),但对于初学者来说,它们有点让人困惑.假设我正在按照一个教程制作一个简单的博客,博客内容需要转义——我信任这些内容,因为只有我在编辑它.所以问题是,我应该像html中的{{ post.content|autoescape }}{{ post.content|escape }}{{ post.content|safe }}那样做吗?

谢谢

编辑:我应该使用哪个过滤器将特殊字符自动转换为html实体?

编辑2:我刚刚意识到自动转义不是有效的过滤.

推荐答案

默认情况下,Django模板中的HTML转义处于启用状态.

自动转义是一个标签.不是过滤:

{% autoescape on %}
    {{ post.content }}
{% endautoescape %}

"转义"过滤转义字符串的Html.具体地说,它进行了以下替换:

  • <;已转换为&lt;
  • > is converted to &gt;
  • ‘(单引号)转换为&#39;
  • "(双引号)转换为&quot;
  • &;转换为&amp;

除了几个角落的 case 外,"强行逃生"与"逃生"几乎完全相同.

"安全"过滤器会将您的内容标记为安全,因此不会转义(将按原样发送到浏览器).

我应该使用哪种过滤将特殊字符自动转换为HTML实体?

嗯,你是说,就像把Ã换成&Atilde;?一直坚持使用UTF-8编码,然后忘掉它们.

Django相关问答推荐

Django BooleanField如何使用RadioSelect?

如何从列中捕获数据并将其添加到下拉菜单中,以便表单填充另一个表

身份验证有效,但登录无效.一直卡在pending

Django 模型:如何查找自动生成的字段列表

如何在 Django 模板视图中显示我的数据?

Django ORM __in 但不是精确的,包含不区分大小写的?

未为部署的 django rest 框架加载静态文件

Django 嵌套事务 - with transaction.atomic()

如何运行克隆的 Django 元素?

如何在 Django 模板上实现 back链接?

Heroku - 在 Django 应用程序中处理静态文件

AngularJS + Django Rest Framework + CORS(CSRF Coo​​kie 没有出现在客户端)

django - 如何使翻译工作?

在 Django 1.8 或更高版本中填充时出现Models aren't loaded yet"错误

python/django中setattr和对象操作的区别

如何将本地文件分配给 Django 中的 FileField?

如何在 Python 中运行另一个脚本而不等待它完成?

Django 中的 Python 日志(log)记录

Django中'related_name'和'related_query_name'属性之间的区别?

防止 django 管理员转义 html