什么是html转义?
所谓html转义就是将 html关键字(包括标签,特殊字符等) 进行过滤替换。过滤替换格式如下:
接下来我们通过实例演示django中转义的细节以及如何关闭转义
一 django的模板默认会对 模板变量 进行转义,比如:
我们的urls.py文件中有这么一行:
url(r'^test/$',views.test)
名为test的view函数:
def test(request): return render(request,'test.html',{ 'content':'hello world
' })
test.html文件的内容:
Title { { content }}
运行manager.py 在浏览器中输入http://127.0.0.1:8000/test/ 结果:
这是因为:django的模板默认会对 模板变量 进行转义,模板变量中的 “ < ” “ > ” 分别被转义成 < > 本例中的html实际上是这样的:
Title <h1>hello world</h1>
二 如何关闭自动转义
1 在模板中使用{% autoescape off %}标签
修改test.html文件如下:
Title {% autoescape off %}{ { content }}{% endautoescape %}
浏览器显示结果:
2 使用safe过滤器:
修改test.html文件:
Title { { content|safe }}
浏览器显示结果如下: