Экранирование HTML в шаблонах Django
По умолчанию Django экранирует HTML в переменных - теги выводятся как текст, а не выполняются. Это защищает от XSS атак.
Пусть из представления в шаблон передается строка с HTML:
from django.shortcuts import render
def page(request):
return render(request, 'page.html', {
'text': '<b>bold</b>',
})
Тогда в шаблоне:
<p>{{ text }}</p>
В браузере отобразится:
<p><b>bold</b></p>
Пусть из представления в шаблон передается следующее:
context = {'text': '<b>text</b>'}
Выведите переменную в шаблоне и посмотрите, как Django экранирует HTML.