Skip to main content

Async support for a range of databases

Project description

Muffin-Databases – Async support for a range of databases for Muffin Framework

Tests Status PYPI Version

Requirements

  • python >= 3.7

Installation

Muffin-Databases should be installed using pip:

$ pip install muffin-databases

Optionally you can install the required database drivers with:

$ pip install muffin-databases[sqlite]
$ pip install muffin-databases[postgres]
$ pip install muffin-databases[mysql]

Driver support is provided using one of asyncpg, aiomysql, or aiosqlite.

Usage

Setup the plugin and connect it into your app:

from muffin import Application
from muffin_databases import Plugin as DB

# Create Muffin Application
app = Application('example')

# Initialize the plugin
# As alternative: db = DB(app, **options)
db = DB(url='sqlite:///db.sqlite')
db.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 database."""
    rows = await db.fetch_all('SELECT * from items')
    return [dict(row.items()) for row in rows]

@app.route('/items', methods=['POST'])
async def insert_item(request):
    """Store an item into database."""
    data = await request.data()  # parse formdata/json from the request
    await db.execute_many('INSERT INTO items (name, value) VALUES (:name, :value)', values=data)
    return 'OK'

The Muffin-Databases plugin is based on databases. See the databases’s docs for further references.

Options

Format: Name – Description (default value)

url – A database connection URL (sqlite:///db.sqlite)

params – A database connection params ({})

You are able to provide the options when you are initiliazing the plugin:

db.setup(app, url='postgresql://localhost/example', params={'ssl': True, 'min_size': 5, 'max_size': 20})

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin-databases/issues

Contributing

Development of Muffin-Databases happens at: https://github.com/klen/muffin-databases

Contributors

  • klen (Kirill Klenov)

License

Licensed under a MIT license.

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

muffin-databases-0.1.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

muffin_databases-0.1.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file muffin-databases-0.1.0.tar.gz.

File metadata

  • Download URL: muffin-databases-0.1.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.9.0

File hashes

Hashes for muffin-databases-0.1.0.tar.gz
Algorithm Hash digest
SHA256 36f1ef3f89ec12a9221324464eedfb34f20fcc3c94e3e0bf03706396d51e4a25
MD5 f092b69c7e0f853d339547a21b2001df
BLAKE2b-256 f5eadc1230a611aab4310783d1d5bdb24a932c344e50f7e7529cde7886dfcb9d

See more details on using hashes here.

File details

Details for the file muffin_databases-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: muffin_databases-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.9.0

File hashes

Hashes for muffin_databases-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bae8bd665e1bd8f85e948db5a3e3d3560495e50185490a708457489af6bec3d5
MD5 64bfdad50b3ac5e80a157f2189937f6f
BLAKE2b-256 644a52053bc02c868cd1821907bba6cf8248b041d1f632a732ca8e0037478e40

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