Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Настройка Django ORM Python: Django ORM

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

git clone https://github.com/hexlet-components/python-django-orm-blog
cd python-django-orm-blog
make setup # первоначальная настройка
make test # запуск тестов

# тут вы увидите результат запуска тестов
========= ...
.............
... ====== 1 passed ...

В качестве базы данных в этом проекте используется 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 — это очень удобно при отладке и оптимизации работы с базой данных.

# создадим нового пользователя
user = User.objects.create(first_name='John', last_name='Smith')
# INSERT INTO "blog_user" ("created_at", "updated_at", "email", "first_name", "last_name")
# VALUES ('2021-06-30 08:38:27.250505', '2021-06-30 08:38:27.250753', '', 'John', 'Smith')

# Execution time: 0.007545s [Database: default]

user.email = 'jsmith@gmail.com'  # зададим пользователю email
user.save()  # сохраним изменения
# UPDATE "blog_user"
#    SET "created_at" = '2021-06-30 08:38:27.250505',
#        "updated_at" = '2021-06-30 08:40:44.948264',
#        "email" = 'jsmith@gmail.com',
#        "first_name" = 'John',
#        "last_name" = 'Smith'
#  WHERE "blog_user"."id" = 1
# 
# Execution time: 0.009978s [Database: default]

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


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

  1. Выполните шаги указанные в уроке.
  2. Познакомьтесь с кодом Makefile и настройками Django в файле settings.py.

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

  1. Репозиторий для экспериментов (Python Django ORM Blog)

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

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

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

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

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

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

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

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

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

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

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 21 ноября

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

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

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

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