Python 3.2+Строки (str)функция
html.escape()
экранирование HTML
Заменяет &, <, > и (по умолчанию) кавычки на HTML-сущности, чтобы текст пользователя можно было безопасно вставить в HTML-страницу.
Синтаксис
html.escape(s, quote=True)
Функция не идемпотентна: повторный вызов превращает & в &amp;, поэтому экранируют ровно один раз — в момент вставки в разметку, а не при сохранении в базу. С quote=False кавычки остаются как есть, и такой текст нельзя класть в значение атрибута: " закроет его. Кириллицу и прочий не-ASCII функция не трогает, а для URL и кода JavaScript она не защищает — там нужны urllib.parse.quote и json.dumps.
Примеры
import html
print(html.escape('<b>Tom & "Jerry"</b>')) # → <b>Tom & "Jerry"</b>
print(html.escape("it's")) # → it's
print(html.escape('"x"', quote=False)) # → "x"
import html
once = html.escape('a & b')
print(once) # → a & b
print(html.escape(once)) # → a &amp; b — двойное экранирование
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности