Справочник · модуль 15 «Веб-приложение на FastAPI»

Страница для людей HTMLResponse()

Маршрут с response_class=HTMLResponse возвращает не JSON, а страницу: текст с тегами HTML. Текст от людей перед вставкой экранируют функцией html.escape.

Сравнение из жизни

Как витрина магазина рядом со складом.

Пример

Знаки заменены. Браузер покажет их как буквы

print("<li>" + html.escape(text) + "</li>")
Результат
<li>&lt;script&gt;alert(&#x27;взлом&#x27;)&lt;/script&gt;</li>

Учитель в уроке Теперь осторожность. Заметки пишут люди, и кто-то напишет тег с вредным кодом. Слева текст вставлен как есть. Браузер выполнил бы чужую программу. Справа функция escape из модуля html заменила знаки меньше и больше на безопасные. Браузер покажет их буквами. Это называют экранированием. Тексты от людей на странице всегда так защищают.

Запомнить

Страница для людей — как витрина магазина рядом со складом. Люди смотрят витрину, а программы ходят на склад.

Тема из урока 15.6 «Проект: сайт и API Бита» курса PythonAZ.