РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
740 of 818 menu

Функция format_html

Функция format_html применяется для создания HTML-строк с безопасной подстановкой динамических данных. Она автоматически экранирует специальные символы в переданных аргументах, предотвращая XSS-атаки, но при этом позволяет вставлять разметку, которая уже помечена как безопасная с помощью функции mark_safe. Функция принимает строку с плейсхолдерами в формате {} и произвольное количество аргументов для подстановки.

Синтаксис

from django.utils.html import format_html format_html(format_string, *args, **kwargs)

Пример

Создадим HTML-ссылки с динамическими данными:

from django.utils.html import format_html user_name = "John Doe" user_id = 123 link = format_html( '<a href="/users/{}/">{}</a>', user_id, user_name ) print(link)

Результат выполнения кода:

"<a href="/users/123/">John Doe</a>"

Пример

Используем функцию для создания структурированного HTML с несколькими подстановками:

from django.utils.html import format_html article_title = "My Article" author = "Admin" date = "2026-09-07" res = format_html( '<div class="article"><h1>{}</h1><p>Author: {}</p><p>Date: {}</p></div>', article_title, author, date ) print(res)

Результат выполнения кода:

"<div class="article"><h1>My Article</h1><p>Author: Admin</p><p>Date: 2026-09-07</p></div>"

Пример

Используем функцию с помеченной безопасной разметкой и автоматическим экранированием:

from django.utils.html import format_html, mark_safe user_input = "<script>alert('XSS')</script>" allowed_html = mark_safe("<b>bold text</b>") res = format_html( '<p>User input: {}</p><p>Allowed HTML: {}</p>', user_input, allowed_html ) print(res)

Результат выполнения кода:

"<p>User input: <script>alert('XSS')</script></p><p>Allowed HTML: <b>bold text</b></p>"

Как видно из результата, опасный скрипт был экранирован, а допустимый HTML-тег b был вставлен как есть, поскольку был помечен как безопасный.

Смотрите также

  • функция format_html_join,
    которая объединяет итерируемый объект в HTML-строку
  • функция mark_safe,
    которая помечает строку как безопасную для вывода
  • класс SafeString,
    который используется для безопасных строк
  • функция escape,
    которая экранирует HTML-спецсимволы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить