ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как создавать представления в Django?

Как установить и подключиться к интерфейсу администратора Django

Различные типы данных приложения Django, такие как содержимое HTML, данные XML, данные JSON, изображение, ошибка 404 и т. д., Передаются в шаблон через представление Django. Каждое представление создается для определенной цели и связано с определенным шаблоном. Данные представления могут быть сгенерированы пользователем через HTML-форму или из базы данных или бизнес-логики. Представления Django могут быть созданы с использованием метода класса python или функции python. Представления на основе классов содержат много функций по сравнению с представлениями на основе функций. Для этого большинство приложений Django используют представления на основе классов для представления данных приложения Django. В этой статье были объяснены способы создания представления на основе функций и представлений на основе классов.

 

Предпосылки:

Перед тем, как практиковаться в примерах этого руководства, вам необходимо выполнить следующие задачи:

  1. Установите Django версии 3+ на Ubuntu 20+ (желательно)
  2. Создайте проект Django
  3. Запустите сервер Django, чтобы проверить, правильно ли он работает.

 

Настройте приложение Django:

A. Чтобы создать приложение Django с именем viewapp, выполните следующую команду:

$ python3 manage.py startapp viewapp

B. Чтобы создать пользователя для доступа к базе данных Django, выполните следующую команду. Если вы создали пользователя раньше, пропустите эту часть:

$ python3 manage.py createsuperuser

C. Добавьте имя приложения в часть INSTALLED_APP файла settings.py.

INSTALLED_APPS = [
…..
‘viewapp’
]

D. Создайте папку с именем templates внутри папки viewapp и укажите местоположение шаблона приложения в части TEMPLATES файла settings.py.

TEMPLATES = [
{
….
'DIRS': ['/home/fahmida/django_pro/viewapp/templates'],
….
},
]

Создайте простое представление на основе функций:

Откройте файл views.py из папки viewapp и замените содержимое этого файла следующим скриптом. Функция index() используется в скрипте для создания HTML-содержимого, которое будет отправлено в браузер с помощью метода HttpResponse(). Здесь текущая дата и время системы будут считаны с помощью функции today(), а текущее значение даты будет сгенерировано перед отправкой в браузер.

Views.py

# Импорт модуль даты читать текущую дату
from datetime import date
# Импортируйте HttpResponse модуль для передачи данных с целью шаблон
from django.http import HttpResponse

# Определите функцию для создания индекса
def index(request):
# Прочтите текущую дату
today = date.today()
# Устанавливаем статические данные для представления
content = "<center><h1 style='color:green'>Добро пожаловать в AndreyEx</h1><h2>"
content += "Today is " + today.strftime("%B") + " " + today.strftime("%d") + ", " + str(today.year) + "</h2></center>"
# Отправляем контент в браузер
return HttpResponse(content)

 

Измените содержимое файла urls.py с помощью следующего сценария. В сценарии путь ‘welcome/’ определен для вызова функции index(), которая отправит HTML-содержимое в файл шаблона.

urls.py

# Импортировать модуль пути
from django.urls import path
# Импортировать модуль представления
from viewapp import views

# Вызвать метод индекса для отображения содержимого
urlpatterns = [
# Определить путь для вызова функции index()
path('welcome/', views.index)
]

 

Запустите следующий URL-адрес из браузера, который покажет следующий результат. На выходе отображаются форматированный текст заголовка и текущее значение даты.

http://localhost:8000/welcome/

 

Создайте простое представление на основе классов:

Создайте файл views2.py внутри папки viewapp и добавьте следующий скрипт. Класс MyView определен в сценарии, который содержит метод с именем get(). Переменная списка с именем listdata объявляется в сценарии для создания списка из 10 случайных чисел. Значения списка будут переданы в шаблон через метод HttpResponse() при вызове этого представления. Модуль random был использован в скрипте для генерации случайного целого числа на каждой итерации цикла for с помощью функции randint().

views2.py

# Импортируйте модуль HttpResponse для отправки данных из представления в шаблон
from django.http import HttpResponse
# Импортировать модуль представления
from django.views import View
# Импортировать случайный модуль
import random

# Определить класс для представлений на основе
class MyView(View):

def get(self, request):
# Объявить переменную списка
listdata = []
# Добавить первый элемент списка
        listdata.append('<center><h2>список из 10 случайных чисел:</h2>')
# Итерация цикла 10 раз
for n in range(10):
# Генерация случайного числа от 1 до 50
random_number = random.randint(1, 50)
# Добавить случайное число в список
listdata.append(random_number)
# Добавить элемент разрыва в список
listdata.append('<br/>')
# Добавить последний элемент списка
listdata.append('</center>')
# Отправляем значения списка в браузер
return HttpResponse(listdata)

Измените содержимое файла urls.py с помощью следующего сценария. В сценарии определен путь “number/” для вызова метода MyView.as_view(), который отправит данные списка в файл шаблона.

urls.py

# Импортировать модуль пути
from django.urls import path
# Импортировать модуль просмотра
from viewapp import views
# Импортировать класс MyView
from viewapp.views2 import MyView

# Вызвать метод get класса
urlpatterns = [
# Определить путь для вызова функции index()
path('welcome/', views.index),
# Определить путь для вызова метода MyView.as_view()
path('number/', MyView.as_view()),
]

Запустите следующий URL-адрес из браузера, который покажет следующий результат. Номера вывода будут изменены, если страница обновится, потому что каждый номер списка будет генерироваться случайным образом.

http://localhost:8000/number/

 

Вывод:

Вывод веб-приложения зависит от сценария файла представления, который является основной частью любого веб-приложения. Представления на основе функций в основном используются в ранней версии приложения Django, а теперь представления на основе классов используются в большинстве приложений Django. В этой статье показаны способы создания представлений обоих типов, чтобы помочь новым пользователям Django создавать представления на основе своего приложения.

Exit mobile version