MongoDB support for Muffin framework.
Project description
Muffin-Mongo – MongoDB support for Muffin framework.
Requirements
python >= 3.9
Installation
Muffin-Mongo should be installed using pip:
pip install muffin-mongo
Usage
Setup the plugin and connect it into your app:
from muffin import Application
from muffin_mongo import Plugin as Mongo
# Create Muffin Application
app = Application('example')
# Initialize the plugin
# As alternative: db = DB(app, **options)
mongo = Mongo(db_url='mongodb://localhost:27017', database='db_name')
mongo.setup(app)
That’s it now you are able to use the plugin inside your views:
@app.route('/items', methods=['GET'])
async def get_items(request):
"""Return a JSON with items from the database."""
documents = await mongo.items.find().sort('key').to_list(100)
return [dict(dd.items(), _id=str(dd['_id'])) for dd in documents]
@app.route('/items', methods=['POST'])
async def insert_item(request):
"""Store items from JSON into database. Return ids."""
data = await request.data() # parse formdata/json from the request
res = await mongo.items.insert_many(data)
return [str(key) for key in res.inserted_ids]
Configuration options
Name |
Default value |
Desctiption |
db_url |
"mongodb://localhost:27017" |
A mongo connection URL |
database |
None |
A database name (optional) |
You are able to provide the options when you are initiliazing the plugin:
mongo.setup(app, db_url='mongodb://localhost:27017')
Or setup it from Muffin.Application configuration using the MONGO_ prefix:
MONGO_DB_URL = 'mongodb://localhost:27017'
Muffin.Application configuration options are case insensitive
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin-mongo/issues
Contributing
Development of Muffin-Mongo happens at: https://github.com/klen/muffin-mongo
Contributors
klen (Kirill Klenov)
License
Licensed under a MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for muffin_mongo-0.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4ea2ec469e7ae317a2d7d9aeb3d1f9aca03212ea69997645e2a7eb794e4c677 |
|
MD5 | 1f4dc6306a3e782da0c37a6d53790883 |
|
BLAKE2b-256 | fa9145c7a8faffe410fba23e2b8a650455a321568b6eb5c80df41d921ea61cae |