Как я могу использовать OrientDB с Django?

Я создаю проект Django, который использует реляционную БД (для целей разработки SQLite) и нереляционную БД (OrientDB). Я впервые использую нереляционную БД, и мне трудно ее настроить с помощью Django.

OrientDB в моем проекте используется исключительно для отслеживания дружеских и дружеских отношений, в то время как все остальные пользовательские данные хранятся в моей реляционной БД.

Я знаю, что мне нужно зарегистрировать БД в моем файле настроек. Я пытаюсь сделать что-то вроде этого:

#setting.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },

    'friends': {
        'NAME': 'friends',
        'ENGINE': 'django.db.backends.orientdb',
        'USER': 'root',
        'PASSWORD': 'hello',
        'HOST': '',
        'PORT': '2480',
    }
}

Однако когда я это делаю, я получаю сообщение об ошибке:

No module named 'django.db.backends.orientdb'

Я должен создать этот бэкэнд-модуль сам, или я могу вручную подключиться к БД в моем коде, когда мне нужно что-то конкретное сделать? Например, всякий раз, когда кто-то создает нового пользователя в моей базе данных SQLite, могу ли я использовать Signal post_save для

  1. подключиться к OrientDb,
  2. создать экземпляр друга в Orient DB и
  3. отключается от OrientDB?

Похоже, должен быть более чистый способ сделать это.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
679
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это почти наверняка то, что вам нужно будет создать самостоятельно, хотя ваш вариант использования не звучит так, как будто для этого требуется весь бэкэнд Django. Может быть достаточно нескольких ручных запросов.

Django официально поддерживает PostgreSQL, MySQL, SQLite и Oracle. Существуют бэкенды третья сторона для SAP SQL Anywhere, IBM DB2, Microsoft SQL Server, Firebird и ODBC.

Существует заброшенный проект, который пытался предоставить бэкэнд OrientDB для Django, но он не обновлялся довольно долгое время и, вероятно, нуждается в большой любви:

This project isn't maintained anymore, feel free to fork and keep it alive.

Независимо от того, как вы решите продолжить, вам, вероятно, следует взглянуть на Библиотека Python OrientDB.

Другие вопросы по теме