Ответ
Django имеет встроенную поддержку нескольких реляционных баз данных и может работать с другими через сторонние пакеты.
Официально поддерживаемые
Это базы данных, для которых Django предоставляет встроенный бэкенд в django.db.backends
:
- PostgreSQL (
postgresql
) — наиболее рекомендуемый выбор для production-окружения благодаря своей надежности и богатому функционалу. - MySQL / MariaDB (
mysql
) - SQLite (
sqlite3
) — легковесная файловая БД, идеальна для локальной разработки и прототипирования. - Oracle (
oracle
)
Поддерживаемые через сторонние библиотеки
Для работы с NoSQL и другими базами данных требуются внешние пакеты, которые предоставляют кастомный бэкенд для Django ORM:
- MongoDB: через
djongo
- CockroachDB: через
django-cockroachdb
- Microsoft SQL Server: через
mssql-django
Пример конфигурации в settings.py
Так выглядит настройка для подключения к PostgreSQL:
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase', # Имя вашей БД
'USER': 'myuser', # Пользователь БД
'PASSWORD': 'mypassword', # Пароль
'HOST': '127.0.0.1', # Адрес сервера БД
'PORT': '5432', # Порт
}
}
Ключевой момент: Хотя Django может работать с NoSQL базами, его ORM спроектирована для реляционных моделей. При использовании NoSQL некоторые возможности ORM (например, сложные JOIN
-подобные запросы) могут быть ограничены.