Какие базы данных поддерживает Django?

Ответ

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-подобные запросы) могут быть ограничены.