Django — это мощный фреймворк, который помогает создавать полноценные веб-приложения всего за несколько шагов. В этом уроке мы разберём, как установить Django, создать первый проект, понять его структуру и разобраться, как устроена архитектура MTV, лежащая в основе каждого Django-приложения.
Перед началом убедитесь, что у вас установлен Python (версия 3.10 или выше).
Откройте терминал (или встроенный терминал в VS Code) и выполните команду:
pip install djangoЭта команда скачает и установит последнюю стабильную версию Django.
Проверить, всё ли установлено правильно, можно так:
django-admin --versionЕсли вы увидели номер версии — установка прошла успешно.
Теперь создадим первый Django-проект. Выполните команду:
django-admin startproject cinemahubЗдесь cinemahub — это имя вашего проекта. Вы можете выбрать любое другое, например blog, crm, store и т.д.
После выполнения команды появится папка со структурой проекта:
cinemahub/
manage.py
cinemahub/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
Разберём, что здесь находится.
Основные элементы проекта Django:
-
manage.py— универсальный инструмент для управления проектом. С его помощью мы запускаем сервер, создаём приложения, выполняем миграции и тесты. -
settings.py— главный файл настроек проекта (о нём подробнее ниже). -
urls.py— отвечает за маршрутизацию (то есть связывает адреса страниц с функциями, которые их обрабатывают). -
asgi.py/wsgi.py— точки входа для работы с сервером (используются при развертывании проекта). -
__init__.py— служебный файл, указывающий Python, что это пакет.
Перейдите в папку проекта:
cd cinemahubТеперь запустите тестовый сервер:
python manage.py runserverПосле запуска вы увидите сообщение вроде:
Starting development server at http://127.0.0.1:8000/
Откройте этот адрес в браузере — появится приветственная страница Django. Это означает, что проект успешно создан и работает 🎉
Django построен на архитектурном паттерне MTV (Model–Template–View), который очень похож на классическую модель MVC (Model–View–Controller).
| Компонент | В MVC называется | Что делает |
|---|---|---|
| Model | Model | Отвечает за данные и работу с базой данных |
| Template | View | Отвечает за внешний вид страниц (HTML-шаблоны) |
| View | Controller | Логика обработки запросов, связывает модель и шаблон |
Проще говоря:
- Model — описывает данные (например, таблицы в базе).
- Template — описывает, как эти данные будут отображаться.
- View — решает, какие данные нужно получить и какой шаблон отобразить пользователю.
Таким образом, Django сам реализует связь между слоями, чтобы разработчик сосредоточился на логике приложения, а не на низкоуровневых деталях.
Файл settings.py — это центр управления проектом.
В нём указаны все важные параметры: базы данных, установленные приложения, язык, часовой пояс, пути к статическим файлам и многое другое.
Ключевые элементы, на которые стоит обратить внимание:
-
INSTALLED_APPS— список приложений, подключённых к проекту. Здесь регистрируются как системные, так и пользовательские приложения. -
DATABASES— настройки базы данных. По умолчанию используется SQLite, лёгкая база, не требующая отдельного сервера. Позже мы заменим её на PostgreSQL — базу, подходящую для реальных проектов. -
DEBUG— параметр, отвечающий за отладку. ПриDEBUG = Trueсервер показывает подробные ошибки. В боевых проектах это значение всегдаFalse. -
ALLOWED_HOSTS— список доменов, с которых разрешено открывать сайт (для локальной разработки можно оставить пустым). -
LANGUAGE_CODEиTIME_ZONE— язык и часовой пояс проекта.
Django-проект состоит из отдельных приложений, каждое из которых отвечает за свою функциональность. Например:
- одно приложение может управлять пользователями,
- другое — заказами,
- третье — новостями.
Создадим приложение командой:
python manage.py startapp moviesПосле выполнения команды появится новая папка:
movies/
admin.py
apps.py
models.py
tests.py
views.py
Теперь зарегистрируем приложение в проекте.
Откройте settings.py и добавьте его в список INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'movies.apps.MoviesConfig', # наше приложение
]Готово! Теперь Django “знает” о существовании вашего приложения.
- Установите Django и создайте проект с именем
blogsite. - Запустите локальный сервер и убедитесь, что он работает.
- Создайте приложение
postsи зарегистрируйте его вsettings.py. - Найдите файл
settings.pyи попробуйте изменить часовой пояс (TIME_ZONE) на свой регион. - Изучите структуру вашего проекта — какие файлы уже есть и за что каждый отвечает.
- Ответьте себе на вопрос: чем архитектура MTV отличается от MVC?
- Что делает команда
django-admin startproject? - За что отвечает файл
manage.py? - Что делает команда
python manage.py runserver? - Чем отличаются Model, Template и View в архитектуре MTV?
- Какое значение имеет параметр
DEBUGв настройках проекта? - Что такое
INSTALLED_APPSи зачем туда добавлять свои приложения? - Какая база данных используется по умолчанию в Django?
- В чём основное отличие архитектуры MTV от MVC?