A proton sized python framework for building backend web applications
Project description
PROTON : A proton sized web framework
Proton is an Express inspired proton sized web framework for building backend web applications from void. Currently, it has features of adding routes, controllers and sending API responses (Refer the example blog app for reference). Defining models with custom field types is also available but is under development.
Status : Under developement
To run example app
$ pip3 install -r requirements.txt
$ python3 main.py run:<appname>
Documentation
Step 1: Install proton and create folder structure
$ pip3 install proton-py
$ touch models.py
$ touch controllers.py
$ touch routes.py
$ touch main.py
Step 2: Define your models
# models.py
from proton.db import model
class User(model.Model):
username = model.StringType('username', max_length=50, min_length=4, unique=True, required=True)
# define your model here
Step 2: Define your controllers
# controllers.py
from proton.handler import Response
def index(req):
# define your controller here
return Response(status=200, data={"msg": "message"})
Step 3: create a router and assign controllers with routes
# routes.py
from proton.handler import Router
from .controllers import index
router = Router()
router.get("/", index)
Step 4: create proton app and assemble your router and models
# main.py
from proton import Proton, run
from .routes import router
from .models import User
api = Proton()
api.set_router('/api', router)
api.set_models(User)
run(api)
Step 5: Boot your models to db and run the server
$ python3 main.py run:db
$ python3 main.py run:api
Refer the example blog app for folder structure. Working on a better documentation
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 void_proton-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f285dbc6952386437aca7c5a81a6946c07b1a88ea34587981e43a3b381b1714c |
|
MD5 | 236028e1c14925fd65bff8aaf4cdb4c6 |
|
BLAKE2b-256 | 9cecb33d820d2192fd2d1d42fa492e9ee8df8e2db0760d5ad84bbd7cfd485d17 |