Один проект — много приложений. Приложение можно переиспользовать в другом проекте.
Разница
Проект — вся конфигурация сайта: settings.py, главный urls.py, wsgi.py.
Приложение — модульная часть с определённой функциональностью: models, views, urls, templates.
mysite/ ← ПРОЕКТ
├── manage.py
├── mysite/
│ ├── settings.py
│ └── urls.py
├── blog/ ← ПРИЛОЖЕНИЕ
│ ├── models.py
│ └── views.py
└── shop/ ← ПРИЛОЖЕНИЕ
├── models.py
└── views.py
Один проект — много приложений. Приложение можно переиспользовать в другом проекте.
Создание приложения
python manage.py startapp tasks
INSTALLED_APPS — регистрация
Каждое приложение должно быть в INSTALLED_APPS, иначе Django его не видит:
# settings.py
INSTALLED_APPS = [
# Встроенные приложения Django
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Сторонние
'rest_framework',
'crispy_forms',
# Твои приложения
'tasks',
'blog',
'shop',
]
AppConfig — конфигурация приложения
# tasks/apps.py
from django.apps import AppConfig
class TasksConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'tasks'
verbose_name = 'Задачи'
Можно явно указать в INSTALLED_APPS:
INSTALLED_APPS = [
'tasks.apps.TasksConfig', # вместо просто 'tasks'
]
Когда выносить в отдельное приложение
- Пользователи и аутентификация →
accounts - Блог со статьями →
blog - Корзина и заказы →
shop - API →
api
Правило: если функциональность можно описать одним существительным — это кандидат на отдельное приложение.
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!