2009-05-31 79 views

回答

0

如果您使用的是django 1.0,那麼您的模板變量已經被編碼並準備好顯示。如果您不希望全局打開,則還使用safe運算符{{ var|safe }}

1

html.entities模塊(htmlentitydefs爲Python 2.x的)包含字典codepoint2name它可能更爲有用即應做你需要的。

>>> import html.entities 
>>> html.entities.codepoint2name[ord("&")] 
'amp' 
>>> html.entities.codepoint2name[ord('"')] 
'quot' 
6
from django.utils.html import escape 
print escape('<div class="q">Q & A</div>') 
+1

我對此投了票,因爲我不想解析任何其他答案,甚至做一個搜索和替換,我想要一個函數來完成這一切。 – paulmorriss 2010-06-18 15:36:49

1

我認爲最簡單的方法就是用替換:

text.replace("&", "&amp;").replace('"', "&quot;").replace("<", "&lt;").replace(">", "&gt;") 

PHP只逃脫這四個實體與用htmlspecialchars。請注意,如果您在PHP中設置了ENT_QUOTES,則需要用&#039替換引號;而不是&「。

0

大廈@ garlon4的回答,您可以定義自己的htmlspecialchars(s)

def htmlspecialchars(text): 
    return (
     text.replace("&", "&amp;"). 
     replace('"', "&quot;"). 
     replace("<", "&lt;"). 
     replace(">", "&gt;") 
    ) 
相關問題