django safe 過濾器--不對字符串進行轉義(轉)


unix下的binutils短小精悍,用膠水(俺經常成管道為膠水)緊密結合在一起釋放巨大的能量。django的過濾器也學習了這個方式,每個版本的django都自帶了一些builtin的filter,當然我們也可以根據需要自己寫。
在寫代碼的過程中,遇到在render內容到html后,想基於此修改或者獲取一些其他的信息,我一般選擇是自己寫個filter,十有八九都能work!今天就碰到了個問題,自定義的filter不能工作。
一個同事要求在錄入信息后,展示的時候要有間即所得的功能,例如,他輸入了:
 
port1 => 保留<
port2 => comb1
port2 => comb3
 
在展示的時候也要能有換行以及一些特殊字符。
我的思路是在這些信息入庫之前替換,以為這樣就可以了,發現不能正常render,django將他們escape了,如何讓django跳過轉義?經過測試,發現如果render raw字符串,就能正常工作,可我用的是變量,如何將包含字符串的變量轉換成raw的,愣是沒找到方法,最后求救,老同事來了看看我寫的filter,然后只簡單在模板最后加了一個過濾器:|safe,就ok了!
 
safe

Marks a string as not requiring further HTML escaping prior to output. When autoescaping is off, this filter has no effect.

在django輸出之前,要求不對字符串轉義。當自動轉義關閉的時候,這個過濾器失效。

看來還是要多看django doc!有沒有方法將包含字符串的變量轉換成raw的?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM