Peewee-AIO integration for Muffin framework
Project description
muffin-peewee-aio – Peewee ORM integration to Muffin framework.
Requirements
python >= 3.7
Installation
Muffin Peewee should be installed using pip:
$ pip install muffin-peewee-aio
You can install optional database drivers with:
$ pip install muffin-peewee-aio[aiosqlite] $ pip install muffin-peewee-aio[aiopg] $ pip install muffin-peewee-aio[asyncpg] $ pip install muffin-peewee-aio[aiomysql]
Usage
from muffin import Application
from muffin_peewee import Plugin as Peewee
# Create Muffin Application
app = Application('example')
# Initialize the plugin
# As alternative: db = Peewee(app, **options)
db = Peewee()
db.setup(app, PEEWEE_CONNECTION='postgresql://postgres:postgres@localhost:5432/database')
Options
Name |
Default value |
Desctiption |
CONNECTION |
sqlite:///db.sqlite |
Database URL |
CONNECTION_PARAMS |
{} |
Additional params for DB connection |
AUTO_CONNECTION |
True |
Automatically get a connection from db for a request |
AUTO_TRANSACTION |
True |
Automatically wrap a request into a transaction |
MIGRATIONS_ENABLED |
True |
Enable migrations with |
MIGRATIONS_PATH |
"migrations" |
Set path to the migrations folder |
You are able to provide the options when you are initiliazing the plugin:
db.setup(app, connection='DB_URL')
Or setup it inside Muffin.Application config using the PEEWEE_ prefix:
PEEWEE_CONNECTION = 'DB_URL'
Muffin.Application configuration options are case insensitive
Queries
class Test(db.Model):
data = peewee.CharField()
@app.route('/')
async def view(request):
return [t.data async for t in Test.select()]
Manage connections
# Set configuration option `MANAGE_CONNECTIONS` to False
# Use context manager
@app.route('/')
async def view(request):
# Aquire a connection
async with db.manager.connection():
# Work with db
# ...
Migrations
Create migrations:
$ muffin example:app peewee-create [NAME] [--auto]
Run migrations:
$ muffin example:app peewee-migrate [NAME] [--fake]
Rollback migrations:
$ muffin example:app peewee-rollback [NAME]
List migrations:
$ muffin example:app peewee-list
Clear migrations from DB:
$ muffin example:app peewee-clear
Merge migrations:
$ muffin example:app peewee-merge
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin-peewee-aio/issues
Contributing
Development of Muffin Peewee happens at: https://github.com/klen/muffin-peewee-aio
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
File details
Details for the file muffin-peewee-aio-0.10.0.tar.gz
.
File metadata
- Download URL: muffin-peewee-aio-0.10.0.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4efc5aba3c52a6a5347cd8beca4c273589aae9ffd5cb98c39bbc5dd014415ad0 |
|
MD5 | a288f0d2c05337b673c449581e37fa48 |
|
BLAKE2b-256 | 8d6ff32a405694ef287222882b97c44f1b78c2168fae7f2241aacee1ce9ac099 |
File details
Details for the file muffin_peewee_aio-0.10.0-py3-none-any.whl
.
File metadata
- Download URL: muffin_peewee_aio-0.10.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 511589f8af0af103fa66a7f37bbc50c830da770db6566f227316af189cb8742c |
|
MD5 | 1c0fccdb8296356990993662d184f6ee |
|
BLAKE2b-256 | 61fbc05ab5dede4db4029bdd4d61d7b6cf4bffb9eedc33f8625de5bf5a8f52b7 |