ios html转译,HTML 转义

Django 对字符串进行自动 HTML 转义,如在模板中输出如下值:

视图代码:

def index(request):

return render(request, 'temtest/index2.html',

{

't1': '

hello

'

})

模板代码:

{{t1}}

 显示效果如下图:

hello

会被自动转义的字符

 html 转义,就是将包含的 html 标签输出,而不被解释执行

 原因是当显示用户提交字符串时,可能包含一些攻击性的代码,如 js 脚本

 Django 会将如下字符自动转义:

< 会转换为<

> 会转换为>

' (单引号) 会转换为'

" (双引号)会转换为 "

& 会转换为 &

 当显示不被信任的变量时使用 escape 过滤器,一般省略,因为 Django 自动转义

{{t1|escape}}

关闭转义

 对于变量使用 safe 过滤器

{{ data|safe }}

 对于代码块使用 autoescape 标签

{ % autoescape off %}

{{ body }}

{ % endautoescape %}

 标签 autoescape 接受 on 或者 off 参数

自动转义标签在 base 模板中关闭,在 child 模板中也是关闭的

字符串字面值

 手动转义

{ { data|default:"123" }}

 应写为

{ { data|default:"<b>123</b>" }}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值