20

Python に PHP 関数 htmlspecialchars() と同様または同等の関数はありますか? これまでに見つけた最も近いものは htmlentitydefs.entitydefs() です。

4

8 に答える 8

12

私が知っている最も近いものはcgi.escapeです。

于 2009-05-31T06:12:45.097 に答える
7
from django.utils.html import escape
print escape('<div class="q">Q & A</div>')
于 2010-03-25T04:32:22.133 に答える
4

@ garlon4の回答に基づいて、独自に定義できますhtmlspecialchars(s)

def htmlspecialchars(text):
    return (
        text.replace("&", "&amp;").
        replace('"', "&quot;").
        replace("<", "&lt;").
        replace(">", "&gt;")
    )
于 2016-03-01T17:48:11.757 に答える
3

おそらくxml.sax.saxutils.escapeが必要です:

from xml.sax.saxutils import escape
escape(unsafe, {'"':'&quot;'}) # ENT_COMPAT
escape(unsafe, {'"':'&quot;', '\'':'&#039;'}) # ENT_QUOTES
escape(unsafe) # ENT_NOQUOTES

xml.sax.saxutils.quoteattrを見てください。

于 2009-05-31T06:31:53.530 に答える
3

最も簡単な方法は、置換を使用することだと思います:

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

PHP は、これら 4 つのエンティティのみを htmlspecialchars でエスケープします。PHP で ENT_QUOTES を設定している場合は、引用符を ' に置き換える必要があることに注意してください。「」ではなく。

于 2011-03-30T15:59:40.797 に答える
1

html.entitiesモジュール ( python 2.x 用) には、必要なことを行うhtmlentitydefs辞書が含まれています。codepoint2name

>>> import html.entities
>>> html.entities.codepoint2name[ord("&")]
'amp'
>>> html.entities.codepoint2name[ord('"')]
'quot'
于 2009-05-31T08:27:17.790 に答える
-1

django 1.0 を使用している場合、テンプレート変数は既にエンコードされており、表示できるようになっています。グローバルにオンにしたくない場合は、safe演算子も使用し ます。{{ var|safe }}

于 2009-05-31T06:11:00.810 に答える