PageRenderTime 52ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/doc/tools.rst

https://github.com/linuxnow/mongo-python-driver
ReStructuredText | 100 lines | 86 code | 14 blank | 0 comment | 0 complexity | f9755c93dbcf502075050efda7fa243d MD5 | raw file
  1. Tools
  2. =====
  3. Many tools have been written for working with **PyMongo**. If you know
  4. of or have created a tool for working with MongoDB from Python please
  5. list it here.
  6. .. note:: We try to keep this list current. As such, projects that
  7. have not been updated recently or appear to be unmaintained will
  8. occasionally be removed from the list or moved to the back (to keep
  9. the list from becoming too intimidating).
  10. If a project gets removed that is still being developed or is in active use
  11. please let us know or add it back.
  12. ORM-like Layers
  13. ---------------
  14. Some people have found that they prefer to work with a layer that
  15. has more features than PyMongo provides. Often, things like models and
  16. validation are desired. To that end, several different ORM-like layers
  17. have been written by various authors.
  18. It is our recommendation that new users begin by working directly with
  19. PyMongo, as described in the rest of this documentation. Many people
  20. have found that the features of PyMongo are enough for their
  21. needs. Even if you eventually come to the decision to use one of these
  22. layers, the time spent working directly with the driver will have
  23. increased your understanding of how MongoDB actually works.
  24. MongoKit
  25. The `MongoKit <http://github.com/namlook/mongokit>`_ framework
  26. is an ORM-like layer on top of PyMongo. There is also a MongoKit
  27. `google group <http://groups.google.com/group/mongokit>`_.
  28. Ming
  29. `Ming <http://merciless.sourceforge.net/>`_ (the Merciless) is a
  30. library that allows you to enforce schemas on a MongoDB database in
  31. your Python application. It was developed by `SourceForge
  32. <http://sourceforge.net/>`_ in the course of their migration to
  33. MongoDB. See the `introductory blog post
  34. <http://blog.pythonisito.com/2009/12/ming-01-released-python-library-for.html>`_
  35. for more details.
  36. MongoAlchemy
  37. `MongoAlchemy <http://mongoalchemy.org>`_ is another ORM-like layer on top of
  38. PyMongo. Its API is inspired by `SQLAlchemy <http://sqlalchemy.org>`_. The
  39. code is available `on github <http://github.com/jeffjenkins/MongoAlchemy>`_;
  40. for more information, see `the tutorial <http://mongoalchemy.org/tutorial.html>`_.
  41. MongoEngine
  42. `MongoEngine <http://mongoengine.org/>`_ is another ORM-like
  43. layer on top of PyMongo. It allows you to define schemas for
  44. documents and query collections using syntax inspired by the Django
  45. ORM. The code is available on `github
  46. <http://github.com/hmarr/mongoengine>`_; for more information, see
  47. the `tutorial <http://mongoengine.org/docs/v0.5/tutorial.html>`_.
  48. Minimongo
  49. `minimongo <http://pypi.python.org/pypi/minimongo>`_ is a lightweight,
  50. pythonic interface to MongoDB. It retains pymongo's query and update API,
  51. and provides a number of additional features, including a simple
  52. document-oriented interface, connection pooling, index management, and
  53. collection & database naming helpers. The `source is on github
  54. <http://github.com/slacy/minimongo>`_.
  55. Framework Tools
  56. ---------------
  57. This section lists tools and adapters that have been designed to work with
  58. various Python frameworks and libraries.
  59. * `Django MongoDB Engine
  60. <http://django-mongodb.org/>`_ is a MongoDB
  61. database backend for Django that completely integrates with its ORM.
  62. For more information `see the tutorial <http://django-mongodb.org/tutorial.html>`_.
  63. * `mango <http://github.com/vpulim/mango>`_ provides MongoDB backends for
  64. Django sessions and authentication (bypassing :mod:`django.db` entirely).
  65. * `mongodb_beaker <http://pypi.python.org/pypi/mongodb_beaker>`_ is a
  66. project to enable using MongoDB as a backend for `beaker's
  67. <http://beaker.groovie.org/>`_ caching / session system.
  68. `The source is on github <http://github.com/bwmcadams/mongodb_beaker>`_.
  69. * `MongoLog <http://github.com/andreisavu/mongodb-log/>`_ is a Python logging
  70. handler that stores logs in MongoDB using a capped collection.
  71. * `c5t <http://bitbucket.org/percious/c5t/>`_ is a content-management system
  72. using TurboGears and MongoDB.
  73. * `rod.recipe.mongodb <http://pypi.python.org/pypi/rod.recipe.mongodb/>`_ is a
  74. ZC Buildout recipe for downloading and installing MongoDB.
  75. * `repoze-what-plugins-mongodb
  76. <http://code.google.com/p/repoze-what-plugins-mongodb/>`_ is a project
  77. working to support a plugin for using MongoDB as a backend for
  78. :mod:`repoze.what`.
  79. Alternative Drivers
  80. -------------------
  81. These are alternatives to PyMongo.
  82. * `asyncmongo <https://github.com/bitly/asyncmongo>`_ is an asynchronous library
  83. for accessing mongo which is built on the tornado ioloop.
  84. * `TxMongo <http://github.com/fiorix/mongo-async-python-driver>`_ is an
  85. asynchronous Python driver for MongoDB, although it is not currently
  86. recommended for production use.