Зарегистрируйтесь, чтобы продолжить обучение

Hello World Python: Разработка на фреймворке Django

Чтобы начать разбираться с Django, нужно для начала создать на нем проект и запустить. Этим мы и займемся в этом уроке.

Создание проекта на Django

Проекты на Django создаются из командной строки. Первым делом создайте новый python-проект в директории hexlet-django-blog и добавьте в зависимости Django.

В случае uv нужно вызывать команды с помощью uv run: uv 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. Вы увидите приветственную страницу фреймворка:

image_hello

Чтобы остановить сервер, переключитесь на терминал, в котором он запущен, и наберите CTRL+C. Эта страница нужна только для проверки того, что все работает.

Скрипт manage.py

Скрипт manage.py — центральный пульт управления фреймворка. Через manage.py мы будем автоматически генерировать код, управлять базой данных, запускать сервер, консоль и многое другое. Чтобы увидеть список всех команд, запустите manage.py без аргументов:

python manage.py

Этот список команд может расширяться как нами, так и разработчиками расширений. На GitHub можно найти множество полезных дополнений на все случаи жизни. В последующих уроках мы постоянно будем возвращаться к этому скрипту и изучать его команды и возможности.

Теперь мы готовы изучать работу с Django. Будем это делать с помощью нашего проекта hexlet-django-blog — блога для статей.


Самостоятельная работа

  1. Повторите все из теории урока на своем компьютере
  2. Создайте на GitHub-репозиторий hexlet-django-blog
  3. Залейте туда проект

Дополнительные материалы

  1. Репозиторий готового проекта hexlet_django_blog

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»