Шаблон содержит данные HTML, которые генерируются из представления и отображаются в браузере. Статические и динамические HTML-страницы могут быть созданы с использованием шаблона. В приложении Django логика и дизайн сохранены отдельно. Код Python нельзя использовать непосредственно в шаблоне Django, потому что браузер не может интерпретировать код Python. Дизайнер может создавать HTML-страницы только с необходимым форматом или стилем, а кодировщик добавляет статические или динамические данные в шаблон с помощью языка шаблонов Django (DTL).
В этом руководстве показано, как можно создать шаблон Django и как можно использовать DTL для добавления статического или динамического содержимого в шаблон.
Преимущества использования DTL
Использование DTL в шаблонах Django дает множество преимуществ. Некоторые из них упомянуты ниже.
- Логическая часть и презентационная часть приложения создаются отдельно.
- Расширять приложение становится проще.
- Это помогает уменьшить избыточность данных.
- Это обеспечивает безопасность приложения.
Предпосылки
Перед тем, как практиковать сценарий этого руководства, вам необходимо выполнить следующие задачи:
- Установите Django версии 3+ на Ubuntu 20+ (желательно)
- Создайте проект Django
- Запустите сервер Django, чтобы проверить, правильно ли он работает.
Настройте приложение Django
Выполните следующую команду, чтобы создать приложение Django с именем tempapp :
$ python3 manage.py startapp tempapp
Выполните следующую команду, чтобы создать пользователя для доступа к базе данных Django, но если вы уже создали пользователя раньше, то не нужно запускать команду, показанную ниже:
$ python3 manage.py createsuperuser
Добавьте имя приложения в часть INSTALLED_APP файла settings.py, как показано ниже:
INSTALLED_APPS = [
…..
‘tempapp’
]
Создайте папку с именем шаблонов внутри tempapp папки и установить шаблон расположение приложения в ШАБЛОНАХ части settings.py файла, как показано ниже:
TEMPLATES = [
{
….
‘DIRS’: [‘/home/fahmida/django_pro/tempapp/templates’],
….
},
]
Создайте простой шаблон Django
Создайте файл index.html внутри папки tempapp / templates / со следующим сценарием HTML, чтобы отобразить в браузере отформатированный статический текст из двух строк. HTML-файл нельзя отобразить непосредственно в браузере, а файл views.py используется для визуализации HTML-файла в приложении Django.
index.html
<!DOCTYPE html>
<html lang=«en»>
<head>
<meta charset=«UTF-8»>
<title>Django Tutorials</title>
</head>
<body>
<center>
<h1 style=«color:blue»>Learn Django Template Language</h1>
<p style=«font-size:20px; color:red»>Django is popular python framework to design web application</p>
</center>
</body>
</html>
Откройте файл views.py из папки tempapp и добавьте следующий скрипт. Метод rander () используется в файле views.py для отображения любого файла шаблона в браузере.
В следующем скрипте функция index () определена для отображения содержимого файла index.html. Когда эта функция вызывается из файла urls.py, тогда файл шаблона будет отображаться в браузере.
views.py
# Import render module from django
from django.shortcuts import render# Create index function to display the HTML file into the browser
def index(request):
return render(request, «index.html»)
Измените содержимое файла urls.py с помощью следующего сценария. Согласно сценарию функция index () файла views.py будет вызываться для пути index /.
urls.py
# Import path module
from django.urls import path
# Import views
from tempapp import views# Define method for index path
urlpatterns = [
path(‘index/’, views.index)python3 manage.py createsuperuser]
Запустите следующий URL-адрес в браузере, чтобы получить следующий результат. Статические данные отображаются на выходе.
http://localhost:8000/index/
Создайте шаблон Django с DTL
Создайте файл customers.html в папке tempapp / templates / с помощью следующего HTML-сценария. DTL используется в этом скрипте для отображения данных переменной словаря, которая инициализируется данными вложенных списков в файле views2.py. Первый цикл for используется для чтения значений внешнего списка, а второй цикл for используется для чтения значений внутреннего списка.
customers.html
<!DOCTYPE html>
<html lang=«en»>
<head>
<meta charset=«UTF-8»>
<title>Customer Information</title>
<style>
.table, th, tr, td{
border:1px solid blue;
}
</style>
</head>
<body>
<center><h2>List of Customers</h2>
<table>
<tr>
<th>ID</th><th>Name</th><th>Email</th><th>Phone</th>
</tr>
{% for rows in customers %}
<tr>
{% for col in rows %}
<td>{{ col }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
Создайте еще один файл представления с именем views2.py в папке tempapp с помощью следующего сценария. Переменная словаря с именем data объявляется в сценарии, который содержит вложенный список для создания табличных данных из 4 строк и 4 столбцов. Данные переменной будут отправлены в шаблон, когда клиенты () функция этого сценария будет вызываться из urls.py файла.
views2.py
# import render module from django
from django.shortcuts import render# create a function to send tabular data to template
def customers(request):
# define a dictionary of nested list
data = {«customers»: [[‘6745’, ‘Monir Hossain’, ‘monir@gmail.com’, ‘880191345234’],
[‘7845’, ‘Keya Akter’, ‘keya@gmail.com’, ‘880189045673’],
[‘9056’, ‘Mohammed Ali’, ‘ali@gmail.com’, ‘880179893922’],
[‘4536’, ‘Mostafa Kamal’, ‘kamal@gmail.com’, ‘880157665433’]]
}# return response with template and data
return render(request, «customers.html», data)
Измените файл urls.py следующим скриптом. В сценарии определен путь » customers / » для загрузки в браузер файла customers.html с данными словаря.
urls.py
# Import path module
from django.urls import path
# Import views
from tempapp import views
# Import views2
from tempapp import views2# Define methods for index and customers paths
urlpatterns = [
path(‘index/’, views.index),
path(‘customers/’, views2.customers)
]
Запустите следующий URL-адрес в браузере, чтобы получить следующий результат. Записи всех клиентов из таблиц базы данных были отображены в браузере с помощью DTL.
http://localhost:8000/customers/
Вывод
В этом руководстве были показаны способы создания простого шаблона и шаблона на языке шаблонов Django (DTL). Новые пользователи Django смогут правильно создать шаблон для приложения Django после практики сценария из этого руководства.