Python: Django ORM
2026-02-26 18:55 Diff

Этот курс состоит из двух видов практик. Одна выполняется в редакторе Хекслета, другая — на собственном компьютере. Второй вид практики предполагает наличие настроенного Django-проекта, поскольку Django ORM является неотделимой частью фреймворка Django. Мы подготовили такой проект заранее. Вам будет необходимо склонировать к себе готовый репозиторий и проверить его работоспособность:

В качестве базы данных в этом проекте используется SQLite. Такой выбор никак не влияет на работу с ORM, но значительно упрощает настройку и запуск кода на выполнение. SQLite в отличие от больших СУБД, хранится в одном файле и работает напрямую из кода. Под неё не поднимается отдельное приложение в системе.

Основные части репозитория

В целом проект устроен примерно так же, как было описано в курсе по введению в Django. Ниже перечислены те части репозитория, которые касаются практик к данному курсу:

  • Makefile — набор команд для работы с проектом
  • python_django_orm_blog/ — Python package, являющийся Django-проектом
  • python_django_orm_blog/settings.py — настройки Django-проекта
  • python_django_orm_blog/blog — единственное Django-приложение в рамках проекта
  • python_django_orm_blog/blog/models.py — здесь описаны модели приложения, с ними и предстоит работать
  • python_django_orm_blog/blog/tests.py — здесь находятся тесты для приложения, их состав вы тоже будете пополнять

REPL (Django shell)

Лучший способ "поиграться" с кодом данного проекта — использовать shell_plus. У Django есть встроенная команда "shell", shell_plus из пакета django-extensions всего лишь делает её удобнее. В данном проекте в Makefile уже заведена соответствующая команда для запуска, можете смело выполнить make shell.

После запуска вы увидите привычный Python REPL, но при этом база данных окажется подключена и все модели из каждого приложения уже будут импортированы. Заодно shell_plus импортирует и большую часть инструментов из состава фреймворка. Таким образом вы сможете сразу начать работать с БД, а shell отобразит каждый SQL-запрос, который сформирует ORM — это очень удобно при отладке и оптимизации работы с базой данных.

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