@Ravenswood
Разработчик дискорд бота

Как разбить строку в html используя python?

description= (
    "Примеры:"
    "Пример 1"
    "Пример 2"
)

Имею такой код. \n служит переноса строки, чтобы не было все в одну строчку в питоне. Но когда я с помощью цикла в HTML переношу содержимое description то переноса строк нету. \n не работает(ставится только пробел), тег br просто пишет. Никакие тегы/экранированный br(<br>) не помог.
Куда мне вставить что-то чтобы я получил такое на сайте?

Ожидаемый результат:
Примеры:
Пример 1
Пример 2


Фактический результат:
Примеры: Пример 1 Пример 2
  • Вопрос задан
  • 343 просмотра
Решения вопроса 1
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
description= (
    "Примеры:<br/>"
    "Пример 1<br/>"
    "Пример 2<br/>"
)

А что-то типа такого в шаблоне - не помогает?
{{ description|safe }}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
Автоэкранирование - это автоматическое экранирование специальных символов. Специальными символами в HTML (а также в XML и в XHTML) являются &, >, <, " и '. Поскольку эти символы имеют особое значение в документах, для использования в тексте их нужно заменить на так называемые «сущности». Если этого не сделать, это не только может повлиять на невозможность использования этих символов пользователем, но и привести к проблемам с безопасностью (см. xss).

Однако, иногда в шаблонах может потребоваться отключить автоэкранирование. Это может понадобиться, если нужно явным образом вставить в страниц фрагмент HTML, если фрагмент поступил из системы генерации безопасного HTML, например, из преобразователя markdown в HTML.

Для достижения этого есть три способа:

В коде Python обернуть строку HTML в объект Markup перед передачей в шаблон. Это рекомендуемый способ.
Внутри шаблона, воспользовавшись фильтром |safe для явной отметки строки, как безопасного HTML ({{ myvariable|safe }})
Временно отключить систему автоэкранирования.
Для отключения системы автоэкранирования в шаблонах можно воспользоваться блоком {% autoescape %}:

{% autoescape false %}
    <p>autoescaping is disabled here
    <p>{{ will_not_be_escaped }}
{% endautoescape %}

Соблюдайте осторожность и всегда следите за переменными, которые помещаете в этот блок.

Источник - Управление автоэкранированием
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы