Какой API Python следует использовать с Mongo DB и Django

Я собираюсь туда и обратно, над которыми API Python должен использоваться при взаимодействии с Mongo. Я сделал быстрый обзор ландшафта и определил трех ведущих кандидатов.

  • PyMongo
  • MongoEngine
  • Ming

Если вы разрабатывали новый контент-тяжелый веб-сайт с использованием платформы django , какой API вы бы выбрали и почему?

MongoEngine выглядит так, как будто он был построен специально с учетом Django. PyMongo кажется тонкой оберткой вокруг Монго. Он обладает большой властью, хотя и теряет много абстракций, полученных с помощью django в качестве основы. Минг представляет собой интересную промежуточную точку между PyMongo и MongoEngine, хотя у меня не было возможности взять ее на тест-драйв.

  • SQLAlchemy: гибридное выражение с отношением
  • Анимация вращающегося 3D-графика в matplotlib
  • Хранение условного распределения частот с использованием NLTK
  • как вычислить новый столбец на основе значений других столбцов в pandas - python
  • Дешифрование Хром-файлов
  • Python: исправлено исправление длины Regex?
  • Как убить цикл while нажатием клавиши?
  • Как получить доступ к данным из указателя в struct из Python с помощью ctypes?
  • 6 Solutions collect form web for “Какой API Python следует использовать с Mongo DB и Django”

    Как говорит Майк, вы не можете избежать PyMongo – все остальные интерфейсы строятся поверх него. Эти другие интерфейсы, возможно, не нужны. ORM, такие как используемые в Django, полезны при работе с SQL, поскольку они смягчают сложность создания SQL-запросов и схем и анализируют наборы результатов в объекты.

    Тем не менее, PyMongo уже имеет, что покрытые запросы проходят через удобный и простой API, и результаты, полученные от MongoDB, уже являются объектами (ну, дикты в Python – одинаковые различия) по определению. Если вы чувствуете, что вам действительно нужно украсить ваши монго-документы объектами Python, легко добавить манипулятор SON в PyMongo. Самое приятное в этом подходе заключается в том, что вы можете писать код непосредственно на PyMongo и позже добавлять дополнительные функции без необходимости вставлять новый API между вашим кодом и PyMongo.

    То, что осталось? Создание схемы и миграция несколько полезны, но почти так же просто сделаны ad-hoc – скорее всего, если вы планируете использовать MongoDB, вы все равно хотите вырваться из традиционной модели SQL-стиля. Кроме того, если бы был полностью Django-совместимый ORM MongoDB, вы могли бы получить некоторый пробег. Что-то меньшее, чем это, и вы, вероятно, будете создавать работу для себя.

    Вы не пожалеете об использовании PyMongo напрямую.

    Одним из последних опций, заслуживающих внимания, если вы заинтересованы в максимальной эффективности, является асинхронная версия PyMongo, здесь: http://github.com/fiorix/mongo-async-python-driver

    Я работал с Монгокитом . Как это до сих пор.

    Вот сообщение в блоге, на которое я ссылался при интеграции с Django

    Как MongoEngine, так и Ming зависят от PyMongo – они просто положили некоторые хорошие функции поверх него. Я бы рекомендовал по крайней мере начать с PyMongo напрямую – таким образом, если вы решите использовать один из других инструментов и столкнуться с проблемами, будет легко понять, что происходит «под капотом». Тем не менее, я очень предвзятый;).

    Попробуйте django-mongodb-engine. Это бэкенд для Django-нереля, поэтому вы можете продолжать использовать модели Django и ORM. Это еще не так полно, как другие API, хотя: http://www.allbuttonspressed.com/blog/django/2010/05/MongoDB-backend-for-Django-nonrel-released

    Я только что нашел «micromongo»:

    http://packages.python.org/micromongo/

    Похоже, он добавляет достаточно полезного материала поверх пимонго, не мешая ему.

    Взгляните на djongo . Он работает, переведя SQL-запросы в запросы mongodb.

    Вам не нужен django-нереал, чтобы запустить его.

    Все собственные модули ввода Django (например, admin, user, session) работают без каких-либо изменений.

    MongoEngine требует перезаписывать модули Contrib и последний раз, когда я проверил, собственный модуль администратора не запускался на MongoEngine.

    Ваши существующие модели работают без перевода ORM.

    Python - лучший язык программирования в мире.