django 模版關閉轉義方式
django 模版顯示的html中出現'類似的ascii字符,這是由于django對單引號進行了轉義,可以通過關閉轉義解決html處理異常問題。
關閉django轉義的方法有如下兩種:
1.關閉單個模版變量的轉義:
利用'|safe' 過濾器告訴django這個變量不需要轉義, 如模版中:{{ data|sage }}
2.利用django模版標記關閉html或js塊轉義
{% autoescape off %}
code..
{% endautoescape %}
補充知識:Django使用mark_safe()和format_html()函數
django從view向template傳遞HTML字符串的時候,django默認不渲染此HTML,原因是為了防止這段字符串里面有惡意攻擊的代碼。
如果需要渲染這段字符串,需要在view里這樣寫:
from django.utils.safestring import mark_safe def view(request): .... pageHtml = mark_safe('<a href=’#’>首頁</a>') ret = {'equit_cate_list':list,'count':count,'ecform':ecform,'page':page,'pageHtml':pageHtml} return render(request, 'list_equip_category.html',ret)
前端頁面直接使用{{pageHtml}}即可。
mark_safe這個函數就是確認這段函數是安全的,不是惡意攻擊的。
adminx中定義的一些插件等都是用mark_safe()進行渲染的。
format_html和mark_safe非常類似,本質還是調用mark_safe函數,不同在于傳參方式,mark_safe直接傳遞完整的html字符串;
而format_html需要使用{}占位符:
format_html(’<span style='color:{};'>{}</span>’, color_code, obj.approval)
以上這篇django 模版關閉轉義方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
