web framework based on Asyncio stack
Project description
The Muffin
The Muffin – A web framework based on Asyncio stack. (early alpha)
Requirements
python >= 3.3
Installation
The Muffin should be installed using pip:
pip install muffin
Usage
See sources of example application.
Run example server:
$ make run
Configuration
Muffin gets configuration options from python files. By default the package tries to load a configuration from config module (config.py).
There are few ways to redifine configuration module:
Set configuration module in your app initialization:
app = muffin.Application('myapp', CONFIG='config.debug')
Set environment variable MUFFIN_CONFIG:
$ MUFFIN_CONFIG=settings_local muffin example.app:app run
Also you can define any options while initializing your application:
app = muffin.Application('myapp', DEBUG=True, ANY_OPTION='Here', ONE_MORE='Yes')
Base application options
Base Muffin options and default values:
# Configuration module 'CONFIG': 'config', # Enable debug mode 'DEBUG': False, # List of enabled plugins 'PLUGINS': [], # Setup static files in development 'STATIC_PREFIX': '/static', 'STATIC_ROOT': 'static',
CLI integration
Run in your shell:
$ muffin path.to.your.module:app_object_name --help
Write a custom command
@app.manage.command def hello(name, upper=False): """ Write command help text here. :param name: Write your name :param upper: Use uppercase """ greetings = 'Hello %s!' % name if upper: greetings = greetings.upper() print(greetings)
$ muffin example.app hello --help Write command help text here. positional arguments: name Write your name optional arguments: -h, --help show this help message and exit --upper Enable use uppercase --no-upper Disable use uppercase $ muffin example.app hello mike --upper HELLO MIKE!
Plugins
THe Muffin has a plugins support.
Muffin-Jade – Jade templates
Muffin-Mongo – MongoDB (pymongo) support
Muffin-Peewee – Peewee support (SQL, ORM)
Muffin-Redis – Redis support
Muffin-Session – User session (auth)
Testing
Set module path to your Muffin Application in pytest configuration file or use command line option --muffin-app.
Example:
$ py.test -xs --muffin-app example.app:app
Deployment
Use muffin command. By example:
$ muffin example.app:app run --workers=4
See muffin {APP} run --help for more info.
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin/issues
Contributing
Development of The Muffin happens at: https://github.com/klen/muffin
Contributors
klen (Kirill Klenov)
License
Licensed under a MIT license (See 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
Hashes for muffin-0.0.48-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b5c6faf4234a4aa7966d0445be810c688d81d99fa6d48928a3b22fe785d6809 |
|
MD5 | 118e210d94145692d16ca4803f5baace |
|
BLAKE2b-256 | e3093b1be39d4e9c52001b1d630d8df860313c3f23e89c7f49bb756dce22a831 |