Приложение в Django — это что-то вроде "комнаты" в доме вашего проекта. Это отдельный модуль или компонент системы, который отвечает за реализацию определённых функций. Например, если вы строите интернет-магазин, один модуль (приложение) может отвечать за каталог товаров, другой — за обработку заказов, а третий — за систему аутентификации пользователей.
Ключевая идея Django: "Разделяй и властвуй". Каждое приложение концентрируется на своей задаче. Это делает проект масштабируемым и легко управляемым.
Создание нового приложения
Создание приложения в Django осуществляется с помощью команды startapp. Это так просто, что наша задача сначала понять, зачем нам это нужно. Допустим, мы хотим создать небольшой блог. Для этого создадим приложение, которое будет отвечать за публикацию и отображение постов.
Шаг 1: Используем уже знакомую нам команду startapp
python manage.py startapp blog
Эта команда создаст директорию с названием blog, в которой уже будет базовая структура, подготовленная Django.
После выполнения команды структура нового приложения blog будет выглядеть следующим образом:
blog/
__init__.py # Указывает, что это Python-модуль
admin.py # Настройки для админ-зоны
apps.py # Конфигурация приложения
migrations/ # Папка для файлов миграций базы данных
__init__.py
models.py # Ваши модели для базы данных
tests.py # Модуль для тестирования приложения
views.py # Ваши представления (views)
Каждый из этих файлов вносит свой вклад в работу приложения. Пока что не будем вдаваться в подробности всех файлов. Нам важны базовые шаги для запуска приложения.
Регистрация приложения в проекте
Приложение — это как новый сосед, который только что переехал в ваш дом. Если вы не уведомите об этом "диспетчера" (нашего проекта), он и знать не будет о новом жителе.
Чтобы проект "увидел" новое приложение, нужно зарегистрировать его в файле settings.py. Откройте его и найдите список INSTALLED_APPS. Добавьте туда ваше приложение:
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Наше приложение
'blog',
]
Теперь Django знает о вашем приложении и начнёт учитывать его в маршрутизации, работе с базой данных и других механизмах.
Создание первого представления (views)
Django — это MTV (Model-Template-View), где логика обработки запросов реализуется в "представлениях" (views). Представление — это Python-функция или класс, который обрабатывает HTTP-запрос и возвращает HTTP-ответ.
Давайте создадим простое представление в файле views.py приложения blog:
# blog/views.py
from django.http import HttpResponse
def home(request):
return HttpResponse("Добро пожаловать в наш блог!")
Что здесь происходит? Мы определяем функцию home, которая принимает объект HTTP-запроса request и возвращает простой HTTP-ответ с текстом "Добро пожаловать в наш блог!". Это пока примитивное представление, но оно работает!
5. Настройка маршрутов (urls.py)
Теперь нужно связать наше представление с URL-адресом, чтобы пользователь мог увидеть его в браузере. Для этого создадим файл urls.py в папке blog:
touch blog/urls.py
И добавим в него следующий код:
# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'), # Главная страница нашего блога
]
Здесь:
- Мы импортируем
pathиз модуляdjango.urlsдля определения маршрутов. - Мы связываем URL
'/'с представлениемhome.
Но это ещё не всё! Нам нужно "подключить" маршруты нашего приложения к глобальным маршрутам проекта. Откройте файл urls.py проекта (он находится в корне вашего проекта) и отредактируйте его:
# myproject/urls.py
from django.contrib import admin
from django.urls import path, include # Импортируем include
urlpatterns = [
path('admin/', admin.site.urls), # Маршруты админ-зоны
path('', include('blog.urls')), # Подключаем маршруты нашего приложения
]
Теперь Django знает, что любые запросы на '/' (корень сайта) будут обрабатываться приложением blog.
Запуск и проверка работы
Всё готово для запуска! Запустите сервер разработки:
python manage.py runserver
Откройте браузер и перейдите на http://127.0.0.1:8000/. Если всё сделано правильно, вы увидите текст "Добро пожаловать в наш блог!".
Типичные ошибки и их решение
Проблема 1: Путь не найден (404 Not Found)
Проверьте, подключили ли вы файл urls.py приложения в глобальный файл маршрутов проекта. Также убедитесь, что в INSTALLED_APPS добавлено ваше приложение.
Проблема 2: Ошибка модуля ImportError
Убедитесь, что вы правильно указали пути во всех импортах. Django очень чувствителен к правильности путей.
Проблема 3: Сервер не запускается
Проверьте, активировано ли виртуальное окружение. Если нет, активируйте его и установите все зависимости из requirements.txt.
Практическое применение
После этой лекции у вас есть минимально рабочее приложение. В реальных проектах создание такого каркаса — это первый шаг в разработке функциональных модулей. Например:
- Вы можете добавить функционал отображения списка постов.
- Создать отдельную страницу для каждого поста.
- Добавить форму для создания новых постов.
И всё это — на основе уже готового приложения blog.
Теперь у вас есть свой "дом", точнее, ваша "первая комната". В следующих лекциях мы будем добавлять туда мебель: шаблоны, маршруты, модели и другие замечательные штуки, которые делают Django столь мощным инструментом.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ