Привет! В прошлых статьях мы разобрали структуру Django-проекта. Теперь пришло время создать первое приложение — это самостоятельный модуль, который отвечает за конкретную функциональность сайта.
В этой статье мы разберём:
- Что такое приложение в Django
- Как создать приложение
- Структуру приложения
- Регистрацию приложения в проекте
- Что нужно знать перед началом
- Основная часть
- Что такое приложение в Django
- Команда startapp
- Структура приложения
- Регистрация приложения
- Создание первой view
- Создание маршрута (URL)
- Запуск и проверка
- Задачи для закрепления
- Нюансы и подводные камни
- Важность имени приложения
- Порядок импортов
- Автоматическое создание папки migrations
- Частые ошибки и как их избежать
- Ошибка 1: Забыл добавить приложение в INSTALLED_APPS
- Ошибка 2: Неправильный импорт в urls.py
- Ошибка 3: Неправильный путь в include
- Шпаргалка
- Заключение
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Django
- Созданный проект (из прошлых статей)
Совет: Приложение — это модуль, который решает одну задачу: блог, форум, интернет-магазин. Проект состоит из приложений.
Основная часть
Что такое приложение в Django
Приложение (app) — это набор кода, который отвечает за определённую функциональность сайта.
Проект — это целый сайт, а приложения — это его части.
Например:
blog— приложение для блогаshop— приложение для интернет-магазинаusers— приложение для пользователей
Совет: Приложения можно переиспользовать в разных проектах, просто скопировав папку.
Команда startapp
Создаём приложение с помощью команды startapp:
python manage.py startapp pollsЭта команда создаст папку polls со стандартной структурой.
Важно: Команда выполняется в корне проекта, где лежит
manage.py.
Структура приложения
polls/
__init__.py # Делает папку Python-пакетом
admin.py # Настройка админ-панели
apps.py # Конфигурация приложения
models.py # Модели базы данных
tests.py # Тесты
views.py # Представления (обработчики запросов)
migrations/ # Папка для миграций
__init__.pyНазначение файлов:
| Файл | Назначение |
|---|---|
__init__.py | Делает папку Python-пакетом |
admin.py | Регистрация моделей в админ-панели |
apps.py | Конфигурация приложения |
models.py | Описание структуры данных (таблицы БД) |
views.py | Логика обработки запросов |
tests.py | Автоматические тесты |
migrations/ | Миграции базы данных |
Регистрация приложения
Чтобы Django знал о приложении, его нужно добавить в INSTALLED_APPS в файле settings.py :
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls.apps.PollsConfig', # Добавляем наше приложение
]Совет: Регистрация приложения обязательна. Без этого Django не будет видеть модели и другие компоненты приложения.
Создание первой view
View — это функция или класс, которая обрабатывает запрос и возвращает ответ.
Открой файл views.py в приложении polls и добавь код:
from django.http import HttpResponse
def index(request):
return HttpResponse("Привет, мир! Это первая страница на Django.")Создание маршрута (URL)
Чтобы связать view с URL, создай файл urls.py внутри приложения polls :
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]Теперь нужно подключить URL приложения в главный urls.py проекта :
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls')), # Подключаем URL приложения
]Запуск и проверка
Запусти сервер:
python manage.py runserverОткрой в браузере: http://127.0.0.1:8000/polls/
Ты увидишь: "Привет, мир! Это первая страница на Django."
Поздравляю! Ты создал своё первое Django-приложение.
Задачи для закрепления
Задача 1. Создай новое приложение с именем blog.
Задача 2. Зарегистрируй приложение в INSTALLED_APPS.
Задача 3. Создай view, которая возвращает «Мой блог».
Задача 4. Создай URL для этой view.
Задача 5. Проверь работу в браузере.
Ответы:
Задача 1.
python manage.py startapp blogЗадача 2.
INSTALLED_APPS = [
...,
'blog.apps.BlogConfig',
]Задача 3.
# blog/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Мой блог")Задача 4.
# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
# mysite/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]Задача 5.
# Запусти сервер и открой http://127.0.0.1:8000/blog/Нюансы и подводные камни
Важность имени приложения
Имя приложения должно быть уникальным в проекте.
Порядок импортов
Используй правильные импорты в urls.py:
from django.urls import path
from . import viewsАвтоматическое создание папки migrations
Папка migrations создаётся автоматически при создании приложения. Она нужна для управления изменениями в базе данных.
Частые ошибки и как их избежать
Ошибка 1: Забыл добавить приложение в INSTALLED_APPS
Всегда добавляй новое приложение в INSTALLED_APPS.
Ошибка 2: Неправильный импорт в urls.py
Используй from . import views или from myapp import views.
Ошибка 3: Неправильный путь в include
Проверяй, что путь к файлу urls.py приложения указан правильно.
Шпаргалка
| Что нужно | Команда / Код |
|---|---|
| Создать приложение | python manage.py startapp polls |
| Зарегистрировать в INSTALLED_APPS | 'polls.apps.PollsConfig' |
| Создать view | def index(request): return HttpResponse("...") |
| Создать urls.py | path('', views.index, name='index') |
| Подключить URL | path('polls/', include('polls.urls')) |
Заключение
Сегодня мы:
- Создали первое Django-приложение
- Разобрали структуру приложения
- Зарегистрировали приложение в проекте
- Создали первую view и URL






