Фреймворк Django: Создаем первое приложение.

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

Пустой проект не содержит никакой функциональности и поэтому в Django существует такое понятие как «Приложения».

Приложения

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

Каждое приложение Django состоит из пакета Python, который следует некоторым соглашениям. Django содержит команду, которая создает структуру для нового приложения, что позволяет вам сосредоточиться на написании кода, а не на создании каталогов.

Для создания нового приложения остановим отладочный веб-сервер (если он включен). В командной строке проверим, находимся ли мы в папке проекта, и наберем команду:

manage.py startapp btest

Команда startapp утилиты manage.py запускает создание нового «пустого» приложения, чье имя указано после этой команды.

Утилита manage.py создала новый каталог и файлы:


Фреймворк Django: Создаем первое приложение.

  • migrations – папка вложенного пакета, в котором будут сохраняться модули сгенерированный Django миграций (в папке находится пустой файл __init__.py);
  • __init__.py – пустой файл, сигнализирующий языку Python, что это папка – пакет;
  • admin.py – модуль административных настроек и классов-редакторов;
  • apps.py – модуль с настройками приложения;
  • models.py – модуль с моделями;
  • tests.py – модель с тестирующими процедурами;
  • views.py – модуль с контроллерами.

Теперь зарегистрируем только что созданное приложение в проекте. Найдем в пакете конфигурации файл settings.py и отыщем следующий фрагмент кода:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Список, хранящийся в переменной INSTALLED_APPS, перечисляет все приложения, зарегистрированные в проекте и участвующие в его работе.

Добавим в код наше приложение. Итоговый листинг:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'btest.apps.BtestConfig',
]

Обратим внимание на три важных момента. Во-первых, элемент списка приложений должен представлять собой строку с путем к классу BtestConfig, описывающему конфигурацию приложения и объявленному в файле apps.py, что хранится в пакете приложения.

Во-вторых, этот путь указывается в том формате, в котором записываются пути к модулям в стандарте языка Python (т.е. разделяются точками).

В-третьих, этот путь указывается относительно папки проекта. После изменения кода сохраните и закройте файл settings.py.

Представления

Функция представления, или коротко представление – это функция Python, которая принимает web-запрос и возвращает web-ответ. Ответом может быть HTML-содержимое страницы, или перенаправление, или 404 ошибка, или XML-документ, или что угодно.

Давайте создадим свое первое представление. Откроем файл btest/views.py, удалим имеющийся там код и добавим следующий код:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Привет, программист! Это твое первое приложение. Поздравляем!")

Наше представление – это, собственно функция index(). Единственное, что она делает, – отправляет пользователю текстовое сообщение.

Любая функция представления в качестве единственного обязательного параметра принимает экземпляр класса Httprequest, хранящий различные сведения о полученном запросе.

В теле функции мы создаём экземпляр класса HttpResponse (он объявлен в модуле django.http), который будет представлять отправляемый клиенту ответ.

Маршруты

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

Чтобы добавить настройки URL-ов в приложение, создадим файл urls.py в пакете этого приложения (т.е. в папке btest) и запишем в него код:

from django.urls import path
from .views import index

urlpatterns = [
    path('', index),
]

Пустая строка, переданная первым параметром в функцию path(), обозначает корень пути из маршрута предыдущего уровня вложенности (родительского). Сохраним и закроем файл urls.py.

Чтобы при наборе Интернет-адреса «http://localhost:8000/btest/» запускался только что написанная функция представления index(), нам нужно связать таковой с шаблонным адресом btest/.

Найдем в пакете конфигурации файл urls.py. Откроем файл и найдем код:

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

В данном коде содержится список маршрутов, оформленный в виде обычного списка Python, и присваивается переменной urlpatterns.

Каждый элемент списка маршрутов (т.е. каждый маршрут) должен представляться в виде результата, возвращаемого функцией path() из модуля Django.urls.

Добавим в список новый маршрут. Листинг будет выглядеть так:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('btest/', include('btest.urls')),
    path('admin/', admin.site.urls),
]

Вложенный список маршрутов, указываемый во втором параметре функции path(), должен представлять собой результат, возвращенный функцией include() из модуля django.urls.

Единственным параметром эта функция принимает строку с путем к модулю, где записан список маршрутов.

Сохраняем все файлы и запускам отладочный web-сервер.

Набрав в браузере строку «http://localhost:8000/btest/», мы попадем на страницу с нашим сообщением:


Фреймворк Django: Создаем первое приложение.

Если всё правильно сделали, тогда в браузере должно появится данное сообщение. Поздравляем! Вы создали своё первое приложение на Django.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Связи между моделями.

Связи между моделями.

В нашем проекте есть одна модель под названием “Объявления”. В этой статье мы создадим новый класс модели “Rubric”, которая будет представлять рубрики объявлений. Допишем в

 
Параметры полей и моделей.

Параметры полей и моделей.

Для того, чтобы наша административная панель Django выглядела более понятна для обычного пользователя необходимо указать правильные названия полей. Наша созданная модель представляется непонятной аббревиатурой “Bbs”,

 
Административный web-сайт Django.

Административный web-сайт Django.

Административный web-сайт предоставляет доступ ко всем моделям, объявленным во всех приложениях, что составляют проект. С помощью данной панели можно просматривать, добавлять, править и удалять записи,

 
Создание и использование шаблонов в Django.

Создание и использование шаблонов в Django.

Шаблоны (template) отвечают за формирование внешнего вида приложения. Они предоставляют специальный синтаксис, который позволяет внедрять данные в код HTML. Подсистема Django, называется шаблонизатором, загружает шаблон,

 

Сообщить об опечатке

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