django template filter safe escapejs json_script等
========safe==============
|safe 可以当作html的tag渲染
====in view:
context['user_content1']="<b>Hello</b>"
context['user_content2']="<b>Hello</b>"
return render(request, template_name , context)
====in form.html
user_content1:{{ user_content1 }}
<br>
user_content2:{{ user_content2 | safe }}
实际页面如下
========escapejs==============
view:
context['user_content1']="<script>alert('xss')</script>"
context['user_content2']="<script>alert('xss')</script>"
return render(request, template_name , context)
form:
user_content1:{{ user_content1 }}
<br>
user_content2:{{ user_content2 | escapejs }}
实际页面如下
如果这样写 :
user_content1:{{ user_content1 |safe }}
那么相当于直接写:
user_content1:{{ user_content1 |safe }}
=============json_script的用法==========
{{ user_info|json_script:"user-info" }}
<script>
const user = JSON.parse(document.getElementById('user-info').textContent);
</script>
或者