Skip to main content

muffin-peeweePeewee ORM integration to Muffin framework.

Tests Status PYPI Version Python Versions

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.

Download files

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

Source Distribution

muffin-peewee-1.11.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

muffin_peewee-1.11.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file muffin-peewee-1.11.0.tar.gz.

File metadata

  • Download URL: muffin-peewee-1.11.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for muffin-peewee-1.11.0.tar.gz
Algorithm Hash digest
SHA256 da448e2cdcb42f5032571b9669548e664cc4dd08f95df09578410fac9b18a106
MD5 d66845c7a55a86743860c14e7355787c
BLAKE2b-256 294743972701f09b4e75604692c55150c7aa862747957c2759a1a75e1736f5df

See more details on using hashes here.

File details

Details for the file muffin_peewee-1.11.0-py3-none-any.whl.

File metadata

  • Download URL: muffin_peewee-1.11.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for muffin_peewee-1.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c397d2c87225fb0155057a24b205d5e199ec58689d4d24422bf12d5dada7dfbb
MD5 fcbfc28d24a7fc777cf2981937cf5a65
BLAKE2b-256 691bc9b873667af09608f61a41d7aca5a4287b3a5d7cbbc5d6dc89fdde34ba1d

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page