django模板中输出html的方法

最近在学习django,尝试用django做一个企业网站,在过程中发现一个小问题,django模板默认在花括号中输出的是纯文本,但是我需要输出html,直接显示内容里面的带格式文本以及图片等内容。

比如,我在模板文件中的代码如下:

<span style="line-height:25px">{{ Content }}</span>

其中 Content的值为:

Content="<h1>我的测试</h1>"

我的目的是输出:

但是实际上默认输出的是:

在网上找了好久,我找到了方法,就是暂时使用过滤器,关闭转义功能,显示完这个变量后再打开。代码如下:

{% autoescape off %}
<span style="line-height:25px">{{ Content }}</span>
{% endautoescape %}

off 的意思是关闭对html的转义,而将off替换成on就表示进行html转义,默认进行html转义

注意:autoescape 具备继承性的,如果在父模版中定义了,则在子模版对应内容部分也存在此属性我们可能会疑问,django为什么要将这些字符转义,而不是按原本html的内容输出呢?

只是django出于安全性的考虑,如果默认不转义的话,在上传的文本中可以引入一些js脚本之类的对网站乃至服务器进行破解或者攻击。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值