Skip to main content

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


Download files

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

Source Distribution

void-proton-0.1.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

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

void_proton-0.1.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file void-proton-0.1.0.tar.gz.

File metadata

  • Download URL: void-proton-0.1.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for void-proton-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5ebe646251c442c7eb7296827dd8e5af6504b150aee9be735a145cd491d57f28
MD5 4a01c84c9367bf59e2da851f2518104b
BLAKE2b-256 2897f35ee8e005e12df6f9334665a8c465c62dd0e9ac277ad06176a97c8f0923

See more details on using hashes here.

File details

Details for the file void_proton-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: void_proton-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for void_proton-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f285dbc6952386437aca7c5a81a6946c07b1a88ea34587981e43a3b381b1714c
MD5 236028e1c14925fd65bff8aaf4cdb4c6
BLAKE2b-256 9cecb33d820d2192fd2d1d42fa492e9ee8df8e2db0760d5ad84bbd7cfd485d17

See more details on using hashes here.

Supported by

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