https://github.com/klen/muffin-peewee
Peewee integration to Muffin framework
https://github.com/klen/muffin-peewee
asyncio muffin peewee-orm trio
Last synced: 8 months ago
JSON representation
Peewee integration to Muffin framework
- Host: GitHub
- URL: https://github.com/klen/muffin-peewee
- Owner: klen
- License: mit
- Created: 2015-03-30T19:22:09.000Z (about 11 years ago)
- Default Branch: develop
- Last Pushed: 2022-11-02T08:54:08.000Z (over 3 years ago)
- Last Synced: 2025-05-09T12:07:18.001Z (about 1 year ago)
- Topics: asyncio, muffin, peewee-orm, trio
- Language: Python
- Homepage:
- Size: 188 KB
- Stars: 9
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Contributing: .github/contributing.md
- License: LICENSE
- Code of conduct: .github/code_of_conduct.md
- Codeowners: .github/codeowners
- Security: .github/security.md
Awesome Lists containing this project
README
Muffin Peewee
#############
.. _description:
**muffin-peewee** -- Peewee_ ORM integration to Muffin_ framework.
.. _badges:
.. image:: https://github.com/klen/muffin-peewee/workflows/tests/badge.svg
:target: https://github.com/klen/muffin-peewee/actions
:alt: Tests Status
.. image:: https://img.shields.io/pypi/v/muffin-peewee
:target: https://pypi.org/project/muffin-peewee/
:alt: PYPI Version
.. image:: https://img.shields.io/pypi/pyversions/muffin-peewee
:target: https://pypi.org/project/muffin-peewee/
:alt: Python Versions
.. _contents:
.. contents::
.. _requirements:
Requirements
=============
- python >= 3.7
.. _installation:
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:
Usage
=====
.. code-block:: python
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:
.. code-block:: python
db.setup(app, connection='DB_URL')
Or setup it inside ``Muffin.Application`` config using the ``PEEWEE_`` prefix:
.. code-block:: python
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
.. _bugtracker:
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:
Contributing
============
Development of Muffin Peewee happens at: https://github.com/klen/muffin-peewee
Contributors
=============
* klen_ (Kirill Klenov)
.. _license:
License
========
Licensed under a `MIT license`_.
.. _links:
.. _MIT license: http://opensource.org/licenses/MIT
.. _Muffin: https://github.com/klen/muffin
.. _Peewee: http://docs.peewee-orm.com/en/latest/
.. _klen: https://github.com/klen