Санитайзеры

Markupsafe

markupsafe — эскейпинг символов для использования строк в html и xml документах. Реализует интерфейс __html__, и может принимать объекты от других библиотек, которые реализуют этот же интерфейс

Пример:

from markupsafe import Markup

Markup.escape('<a href=x>t</a>')

Однако, надо иметь ввиду, что следующая запись наоборот позволяет прокинуть html без анкодинга:

from markupsafe import Markup

Markup('<a href=x>t</a>')

bleach

bleach — библиотека от Mozilla для экранирования html конструкций

Пример:

import bleach

ALLOWED_TAGS = [
    'br', 'h1'
]
ALLOWED_ATTRS = {
    '*': ['class'],
    'a': ['href'],
    'img': ['src'],
    'div': ['id', 'some']
}

cleaned = bleach.clean(html_text, tags=ALLOWED_TAGS, attributes=ALLOWED_ATTRS)

Last updated