Skip to main content

An improved package that provides mongodb connectivity. Not compatible with pyramid_mongo or pyramid_mongodb

Project description

Pyramid Mongodb

A simple library to integrate mongodb into your pyramid application. Comes with a debugtoolbar.

Features

  • Supports multiple databases
  • Configuration only setup
  • Integrated debugtoolbar with:
    • Shows db response times
    • explain() for cursor results
    • Connection information
    • Database and collection stats
  • Avoids recreating and closing MongoClient on every request.

Setup

pip install pyramid_mongodb2

Add the following to your application's ini file, (include pyramid_mongodb2:MongoToolbar in debugtoolbar.includes if you want to debug):

[app:main]
mongo_uri = mongodb://username:password@mongodb.host.com:27017/authdb
mongo_dbs = 
    foo
    bar
    baz-quux
    foo-test = foo
pyramid.includes =
    pyramid_mako    
    pyramid_debugtoolbar
    pyramid_mongodb2
debugtoolbar.includes =
    pyramid_mongodb2:MongoToolbar

The code will use config.add_request_method() to add a Database object to your requests, where each database is accessible by db_database_name, as defined in your configuration.

Note: database names with hyphens in them will be converted to underscores, that is database baz-quux will be accessible by request.db_baz_quux.

When doing foo-test = foo, the mongodb database with name foo-test will be assigned to request.db_foo. This helps when testing so that you can use a separate database for development, testing and production without changing your application code, or if you just want to alias a database name.

In your code where you can access request, you now have the following variables:

request.db
request.db_foo
request.db_bar
request.db_baz_quux
request.db_foo

request.db is the MongoClient object, should you ever need it.

In your view code, you can do this:

from pyramid.view import view_config

@view_config(route_name='home', renderer="templates/landing.mako")
def my_view(request):
    return {
        'some_data': request.db_foo.some_collection.find({'a': {'$gte': 5}}, {'_id': False}),
        'other_data': request.db_bar.visitors.insert_one({'person': request.remote_addr}),
    }

Debugging

With debugging enabled, all queries will be logged in request.query_log, when the debugtoolbar is opened, you can then view the execution time and explain() of cursor results. You can also see connection settings and stats for databases and collections.

Screenshots

Here's what the toolbar looks like in action:

Clicking the database or collection name will take you to the relevant section of the collections tab. Clicking the operation name will take you to its pymongo documentation. debug1

Clicking the explain button will show you the explain() result for a cursor. debug2 You can view detailed connection information here, clicking the field name will take you to the pymongo documentation for that field. debug3 This page show dbstats for all connected databases used in this request and their collections. debug4 Here we can see the use of multiple databases in a single project. debug5

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyramid_mongodb2-1.6.4.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

pyramid_mongodb2-1.6.4-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

File details

Details for the file pyramid_mongodb2-1.6.4.tar.gz.

File metadata

  • Download URL: pyramid_mongodb2-1.6.4.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.25.0 CPython/3.6.2

File hashes

Hashes for pyramid_mongodb2-1.6.4.tar.gz
Algorithm Hash digest
SHA256 344bb7fb3073ad6aec505199c781b828f6eb44e43ca160a7619a0f710d4fcb20
MD5 d62f031b257eec6878e77d8601050841
BLAKE2b-256 324d5f1cd8520789ddb5ff004da87ff5873ce175d70c4c7c5ad17e7d1d85f5b3

See more details on using hashes here.

File details

Details for the file pyramid_mongodb2-1.6.4-py3-none-any.whl.

File metadata

  • Download URL: pyramid_mongodb2-1.6.4-py3-none-any.whl
  • Upload date:
  • Size: 3.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.25.0 CPython/3.6.2

File hashes

Hashes for pyramid_mongodb2-1.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b864ee39b8e944d68e28e6947e0f548abad3e6df7acb1a87a9e3710fb129ad6a
MD5 ac93b1341346a94545bc28b6501ef328
BLAKE2b-256 8365c66fd9d84ba03d70aa1eeb4b6ca46ea975f7ce86eb8523b68728f134c811

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page