Перейти к содержанию

Начало урока

Базы данных и ORM в Python

От низкоуровневого DB-API модуля sqlite3 до моделей, сессий и миграций SQLAlchemy

Главная идея: Реляционная база данных даёт долговременное, запрашиваемое и конкурентное хранилище, которое переживает ваш процесс. Python общается с ней двумя способами: низкоуровневый DB-API (sqlite3), где вы пишете SQL вручную, и ORM (SQLAlchemy), которая отображает строки таблиц на объекты Python, так что вы в основном работаете на Python. Одно не заменяет другое — ORM построена поверх DB-API, и знание обоих позволяет выбирать осознанно.
К концу вы сможете:
  • открыть соединение, выполнить SQL через курсор и зафиксировать транзакцию с помощью commit в sqlite3,
  • использовать параметризованные запросы, чтобы защититься от SQL-инъекций,
  • объяснить, что и зачем отображает ORM,
  • определить модель SQLAlchemy 2.0 и управлять Session (единицей работы),
  • описать, какую задачу решают миграции (Alembic), и реальные компромиссы ORM.

1. Почему база данных, а не файл?

Вы уже умеете читать и писать JSON и CSV. Файлы прекрасны для небольших данных с одним писателем. База данных оправдывает себя, когда нужно что-либо из: запросы («все заказы дороже 100 за прошлую неделю» без загрузки всего в память), конкурентность (много читателей и писателей без повреждения файла), целостность (типы, уникальность, внешние ключи, проверяемые движком) и транзакции (группа изменений, которая происходит либо целиком, либо никак).

SQLite — самый мягкий вход: это полноценный SQL-движок, живущий в одном файле, поставляемый с Python как модуль sqlite3 и не требующий сервера. Тот же DB-API, который вы изучаете здесь, — стандартный интерфейс (PEP 249), который реализуют и psycopg для PostgreSQL, и драйверы MySQL, поэтому формы переносятся.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя