Чтобы начать разбираться с Django, нужно для начала создать на нем проект и запустить. Этим мы и займемся в этом уроке.
Создание проекта на Django
Проекты на Django создаются из командной строки. Первым делом создайте новый python-проект в директории hexlet-django-blog и добавьте в зависимости Django.
В случае poetry нужно вызывать команды с помощью poetry run
: poetry run django-admin version
. И всё остальное точно так же.
Теперь можно создать новый проект с помощью команды:
# Перейдите в директорию проекта и выполните команду
django-admin startproject hexlet_django_blog .
Эта команда создаст Django-проект в директории hexlet_django_blog и установит все зависимости, которые необходимы для работы Django. Некоторые уточнения:
- Имя
hexlet_django_blog
будет именем Python-пакета, поэтому содержит подчеркивание в качестве разделителя - Точка в команде означает, что генерируемое содержимое проекта будет расположено в текущей директории. У нас уже есть директория проекта, поэтому нам не нужен лишний уровень вложенности
После установки пакета нам станет доступна команда django-admin
— команда для работы с Django-проектами.
Проверим версию текущей установки Django. Для этого выполним команду в директории проекта:
# Версия должна быть не ниже 4
django-admin version
4.1.2
Структура проекта
Современные фреймворки используют, чтобы разрабатывать сайты любых размеров. Это хорошо, так как есть много возможностей. Но с другой стороны в этом легко потеряться из-за большого количества функций, особенно если это ваш первый фреймворк.
Помимо большого числа понятий самого Django, внутри него встроена поддержка шаблонизатора, работа со статикой, разные виды кеширования, тестирование, логирование и многое другое.
Это не значит, что придется использовать сразу всё. Но нужно понимать хотя бы основы каждой функции — на уровне понимания структуры проекта.
Ниже приведена таблица файлов с описанием их содержимого. В этом описании будут встречаться названия, которые вы пока можете не знать. Позже мы их разберем:
Файл | Описание |
---|---|
manage.py | Скрипт, который используется в процессе разработки для выполнения различных действий над проектом |
wsgi.py и asgi.py | Точки входа в WSGI- и ASGI-приложения |
settings.py | Модуль, который содержит все настройки проекта |
urls.py | Модуль, который описывает правила маршрутизации запросов |
В процессе работы над проектом, нам предстоит модифицировать только два модуля: settings.py
и urls.py
. Если посмотреть в первый, то можно увидеть конфигурацию по умолчанию. Не пугайтесь ее размера, просто ощутите, сколько можно настроить в большом фреймворке.
Запуск проекта
Django управляется утилитой скриптом manage.py
, который находится в корне проекта. Он включает в себя десятки команд, которые упрощают процесс разработки. Одна из них — запуск сайта в режиме разработки:
python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 25, 2022 - 23:17:39
Django version 4.1.2, using settings 'hexlet_django_blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Эта команда запускает встроенный в Django веб-сервер, который работает в однопоточном режиме и сам перезапускается, если что-то менять в коде. Кроме того, этот сервер никогда и ничего не кэширует — это важно при редактировании шаблонов и статических файлов (JS, CSS).
Чтобы увидеть сайт, откройте браузер и загрузите http://127.0.0.1:8000. Вы увидите приветственную страницу фреймворка:
Чтобы остановить сервер, переключитесь на терминал, в котором он запущен, и наберите CTRL+C. Эта страница нужна только для проверки того, что все работает.
Скрипт manage.py
Скрипт manage.py
— центральный пульт управления фреймворка. Через manage.py
мы будем автоматически генерировать код, управлять базой данных, запускать сервер, консоль и многое другое. Чтобы увидеть список всех команд, запустите manage.py
без аргументов:
python manage.py
Этот список команд может расширяться как нами, так и разработчиками расширений. На GitHub можно найти множество полезных дополнений на все случаи жизни. В последующих уроках мы постоянно будем возвращаться к этому скрипту и изучать его команды и возможности.
Теперь мы готовы изучать работу с Django. Будем это делать с помощью нашего проекта hexlet-django-blog — блога для статей.
Самостоятельная работа
- Повторите все из теории урока на своем компьютере
- Создайте на GitHub-репозиторий hexlet-django-blog
- Залейте туда проект
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.