Muffin Peewee
muffin-peewee – Peewee ORM integration to Muffin framework.
Requirements
python >= 3.7
Installation
Muffin Peewee should be installed using pip:
pip install muffin-peewee
Optionally you are able to install it with postgresql drivers:
pip install muffin-peewee[postgres]
Usage
from muffin import Application
from muffin_peewee import Plugin as Peewee
# Create Muffin Application
app = Application('example')
# Initialize the plugin
# As alternative: jinja2 = Jinja2(app, **options)
db = Peewee()
db.setup(app, PEEWEE_CONNECTION='postgres+pool+async://postgres:postgres@localhost:5432/database')
Options
Name |
Default value |
Desctiption |
CONNECTION |
sqlite+async:///db.sqlite |
Database URL |
CONNECTION_PARAMS |
{} |
Additional params for DB connection |
MANAGE_CONNECTIONS |
True |
Install a middleware to aquire db connections automatically |
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
@db.register
class Test(peewee.Model):
data = peewee.CharField()
@app.route('/')
async def view(request):
return [t.data for t in Test.select()]
Manage connections
# Set configuration option `MANAGE_CONNECTIONS` to False
# Use context manager
@app.route('/')
async def view(request):
async with db:
# Work with db
# ...
Migrations
Create migrations:
$ muffin example:app pw_create [NAME] [--auto]
Run migrations:
$ muffin example:app pw_migrate [NAME] [--fake]
Rollback migrations:
$ muffin example:app pw_rollback [NAME]
List migrations:
$ muffin example:app pw_list
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/issues
Contributing
Development of Muffin Peewee happens at: https://github.com/klen/muffin-peewee
Contributors
klen (Kirill Klenov)
License
Licensed under a MIT license.
Metadata
Release files for muffin-peewee 1.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| muffin-peewee-1.11.0.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| muffin_peewee-1.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.6 kB
Release files / muffin-peewee-1.11.0.tar.gz
| Download URL | muffin-peewee-1.11.0.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
da448e2cdcb42f5032571b9669548e664cc4dd08f95df09578410fac9b18a106
|
|
BLAKE2b-256 checksum How to use checksums |
294743972701f09b4e75604692c55150c7aa862747957c2759a1a75e1736f5df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6
|
Release files / muffin_peewee-1.11.0-py3-none-any.whl
| Download URL | muffin_peewee-1.11.0-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c397d2c87225fb0155057a24b205d5e199ec58689d4d24422bf12d5dada7dfbb
|
|
BLAKE2b-256 checksum How to use checksums |
691bc9b873667af09608f61a41d7aca5a4287b3a5d7cbbc5d6dc89fdde34ba1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6
|