django 模版關(guān)閉轉(zhuǎn)義方式
django 模版顯示的html中出現(xiàn)'類似的ascii字符,這是由于django對單引號進行了轉(zhuǎn)義,可以通過關(guān)閉轉(zhuǎn)義解決html處理異常問題。
關(guān)閉django轉(zhuǎn)義的方法有如下兩種:
1.關(guān)閉單個模版變量的轉(zhuǎn)義:
利用"|safe" 過濾器告訴django這個變量不需要轉(zhuǎn)義, 如模版中:{{ data|sage }}
2.利用django模版標記關(guān)閉html或js塊轉(zhuǎn)義
{% autoescape off %}
code..
{% endautoescape %}
補充知識:Django使用mark_safe()和format_html()函數(shù)
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這個函數(shù)就是確認這段函數(shù)是安全的,不是惡意攻擊的。
adminx中定義的一些插件等都是用mark_safe()進行渲染的。
format_html和mark_safe非常類似,本質(zhì)還是調(diào)用mark_safe函數(shù),不同在于傳參方式,mark_safe直接傳遞完整的html字符串;
而format_html需要使用{}占位符:
format_html('<span style="color:{};">{}</span>', color_code, obj.approval)
以上這篇django 模版關(guān)閉轉(zhuǎn)義方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python編程開發(fā)之textwrap文本樣式處理技巧
這篇文章主要介紹了python編程開發(fā)之textwrap文本樣式處理技巧,實例分析了Python中textwrap的常用方法與處理文本樣式的相關(guān)使用技巧,需要的朋友可以參考下2015-11-11教你使用Python建立任意層數(shù)的深度神經(jīng)網(wǎng)絡(luò)
這篇文章主要介紹了Python建立任意層數(shù)的深度神經(jīng)網(wǎng)絡(luò),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08淺談keras 的抽象后端(from keras import backend as K)
這篇文章主要介紹了淺談keras 的抽象后端(from keras import backend as K),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python 無限級分類樹狀結(jié)構(gòu)生成算法的實現(xiàn)
這篇文章主要介紹了Python 無限級分類樹狀結(jié)構(gòu)生成算法的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01