Django на METANIT.COM

Python django template for

Django предоставляет возможность использовать в шаблонах ряд специальных тегов, которые упрощают вывод некоторых данных. Рассмотрим некоторые наиболее используемые теги.

autoescape

Тег autoescape позволяет автоматически экранировать ряд символов HTML и тем самым сделать вывод на страницу более безопасным. В частности, производятся следующие замены:

  • < заменяется на <
  • > заменяется на >
  • ‘ (одинарная кавычка) заменяется на '
  • » (двойная кавычка) заменяется на "
  • & заменяется на &

Например, пусть у нас будет определен следующий шаблон index.html :

Здесь в шаблоне два раза выводится содержимое переменной body . Однако сначала она выводится сама по себе, в во втором случае ее вывод помещается в между тегами и . Тег в качестве параметра принимает одно из значений: on (экранирование включено) и off (экранирование отключено). В данном случае тегу передается значение off , а это значит, что внутри блока тега autoescape экранирование отключено.

Определим следующую функцию-представление, которая использует данный шаблон и передает в него некоторые данные:

from django.shortcuts import render def index(request): return render(request, "index.html", context = Hello World!">)

Здесь в шаблон передается некоторая строка с кодом HTML. По умолчанию шаблоны применяют экранирование. Поэтому на веб-странице мы увидим код html в текстовом виде, а во втором случае переданные данные будут интпретированы непосредственно как код html:

Тег autoescape и экранирование тегов html в шаблонах Django

Комментарии

Для определения комментариев в шаблоне применяется тег comment : все, что помещается между тегами и , игнорируется при генерации html-страницы.

       

Вывод содержимого в шаблон Django

>

if..else

Тег if оформляется в виде блока:

Этот тег оценивает некоторое условие, которое должно возращать True или False : если возвращается True , то выводится содержимое блока .

Читайте также:  Php post hidden text

Например, пусть в представлении передаются в шаблон некоторые значения:

from django.shortcuts import render def index(request): data = return render(request, "index.html", context=data)

В шаблоне в зависимости от значения переменной n мы можем выводить определенный контент:

То есть если n больше 0, то будет выводиться, что число положительное. Если n меньше или равно 0, ничего не будет выводиться.

С помощью дополнительного тега можно вывести контент в случае, если условие после if равно False:

0 %>

Число положительное

Число отрицательное или равно нулю

С помощью тега можно проверить дополнительные условия, если условие в if равно False:

0 %>

Число положительное

Число отрицательное

Число равно нулю

Стоит отметить, что в условии, которое передается тегу if , можно применять ряд операторов, которые возвращают True или False: == , != , < , >, = , in , not in , is , is not , and , or , not .

Циклы

Тег for позволяет создавать циклы. Этот тег принимает в качестве параметра некоторую коллекцию и пробегается по этой коллекции, обрабатывая каждый ее элемент.

Например, пусть из представления в шаблон передается некоторый список:

from django.shortcuts import render def index(request): langs = ["Python", "JavaScript", "Java", "C#", "C++"] return render(request, "index.html", context=)

Выведем элементы списка langs в шаблоне с помощью тега for :

Тег For и перебор списков в шаблонах на Django

Вполне возможно, что переданная из представления в шаблон коллекция окажется пустой. На этот случай мы можем использовать тег :

Подобным образом можно перебирать в шаблоне другие коллекции, например, словари:

В данном случае перебирается словарь data, который передается из представления:

from django.shortcuts import render def index(request): data = return render(request, "index.html", context=)

Определение переменных

Тег позволяет определить переменную и использовать ее внутри блока тега. Например:

В данном случае определены две переменных: name и age, которые мы можем использовать внутри блока . . Однако вне этого блока эти переменные использоваться не могут.

Читайте также:  Arduino cpp and h files

Даты

Тег позволяет вывести системное время. В качестве параметра тегу now передается формат данный, который указывает, как форматировать время и дату.

Форматирование дат в Django

Символ «Y» передает год в виде четырех цифр, «y» — берет из года последние две цифры. «F» — полное название месяца, «N» -сокращенное название месяца. «j» — день месяца. «P» — время. Все возможные форматы для вывода даты и времени можно посмотреть в документации

Стоит отметить, что в качестве времени Django берет значение переменной из файла settinds.py , которая по умолчанию имеет следующее определение:

То есть отсчитывается относительно UTC. Это может быть не всегда удобно. И соответственно мы можем изменить ее значение на нужное. Например, настройка для московского часового пояса:

Источник

Оцените статью