Джанго с MongoDB
ОК. Я начинаю проект в django 1.4, и я хочу MongoDB в качестве моего бэкэнда. После полдня поиска в Google я понял, что mongoengine - лучший вариант (так как это активный проект и предоставляет django как orm)
Теперь проблема 1. Я не могу найти ни одного хорошего пошагового руководства по установке для интеграции mongoengine с проектом django.
- Я понимаю, использование mongoengine означает, что я заменяю django orm и нет необходимости делать syncdb. теперь этот проект имеет мультитенантную архитектуру (*.domain.com), которую я собираюсь решить с помощью промежуточного программного обеспечения.. также значительная часть этого проекта будет работать на администраторе django. Вопрос: повлияет ли замена django orm на mongoengine на администратор django и другие операции (такие как промежуточное ПО, аутентификация и т. Д.)?
Я также открыт для предложений и критики.
3 ответа
Django Admin предназначен для работы только с Django ORM. Использование MongoEngine и отсутствие Django ORM означает, что вы не получите автоматический интерфейс администратора. Другое промежуточное программное обеспечение может использовать Django ORM или быть достаточно абстрагированным, чтобы позволить вам подключить MongoEngine, например: Sessions and Authentication.
В MongoEngine есть несколько помощников для Django, но они ни в коем случае не являются полными или не предназначены для замены ORM в Django.
Для получения дополнительной информации см. Эту презентацию от Django Conf Finland: http://staltz.github.io/djangoconfi-mongoengine
На всякий случай ситуация изменилась, и сейчас есть решение этой проблемы, а именно django-mongoadmin.
Руководство по интеграции Django с MongoDB
Способ связать Django с MongoDB, добавив всего одну строку кода:
Сначала установите djongo:
pip install djongo
Затем запустите ваши миграции:
manage.py make migrations
manage.py migrate
и, наконец, добавьте в ваш файл настроек:
DATABASES = {
‘default’: {
‘ENGINE’: ‘djongo’,
‘NAME’: ‘your-db-name’,
}
}
Это так просто!
Если вы хотите манипулировать MongoDB с помощью Django Admin, просто запустите его:
manage.py runserver
Перейти: http://localhost:8000/admin/
Управляйте встроенными моделями, как показано на этом снимке экрана:
Для получения дополнительной информации ознакомьтесь с документацией по djongo.
Вы должны определенно рассмотреть преимущества и недостатки использования НОВОГО фреймворка (например, MongoEngine) по сравнению с использованием встроенного Django ORM. Прочтите этот урок, прежде чем подумать о принятии MongoEngine, как это предлагают другие знающие участники! Не в обиду!
Дайте мне знать, если вы согласны с таким подходом в комментариях:)