Python Glossary English

Python 3.2+Строки (str)функция

html.escape()

экранирование HTML

Заменяет &, <, > и (по умолчанию) кавычки на HTML-сущности, чтобы текст пользователя можно было безопасно вставить в HTML-страницу.

Синтаксис

html.escape(s, quote=True)

Функция не идемпотентна: повторный вызов превращает &amp; в &amp;amp;, поэтому экранируют ровно один раз — в момент вставки в разметку, а не при сохранении в базу. С quote=False кавычки остаются как есть, и такой текст нельзя класть в значение атрибута: " закроет его. Кириллицу и прочий не-ASCII функция не трогает, а для URL и кода JavaScript она не защищает — там нужны urllib.parse.quote и json.dumps.

Примеры

import html
print(html.escape('<b>Tom & "Jerry"</b>'))  # → &lt;b&gt;Tom &amp; &quot;Jerry&quot;&lt;/b&gt;
print(html.escape("it's"))  # → it&#x27;s
print(html.escape('"x"', quote=False))  # → "x"
import html
once = html.escape('a & b')
print(once)  # → a &amp; b
print(html.escape(once))  # → a &amp;amp; b — двойное экранирование

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности