Skip to main content

It is a simple and lightweight web framework built for learning and experimentation purposes.

Project description

BizAPI

A Lightweight Web Framework for Python

PyPI - License PyPI - Downloads PyPI - Status


Contents


A Simple Example

Installation using a Python package manager:

pip install BizAPI
from bizapi import BizAPI
from bizapi.types import Request, Response

app = BizAPI()


@app.route('/')
def home(request: Request, response: Response):
    response.text = 'This is the home page'
gunicorn main:app

Function-Based Routing

@app.route('/')
def index(request: Request, response: Response):
    response.text = "Hello World!"

Parameterized Routing

@app.route('/say-hello/{name}')
def sayhello(request: Request, response: Response, name: str):
    response.text = f"Assalawma áleykum {name}"

Allowed Methods

@app.route('/article', methods=['POST'])
def create_article(request: Request, response: Response):
    # Create a new article
    pass


@app.route('/article', methods=['GET'])
def get_article(request: Request, response: Response):
    # Get an article
    pass
@app.post('/article')
def create_product(request: Request, response: Response):
    # Create a new article
    pass


@app.get('/article')
def get_product(request: Request, response: Response):
    # Get an article
    pass

Class-Based Routing

@app.route('/article')
class Article:
    def get(request: Request, response: Response):
        # Get an article
        pass
    
    def post(request: Request, response: Response):
        # Create a new article
        pass

Simple Router

def create_article(request: Request, response: Response):
    response.text = "A new article has been created"


app.register_route('/article', create_article, ['POST'])

Templates

from bizapi import render

# First way
@app.route('/say-hello', methods=['GET'])
def home_page(request: Request, response: Response):
    response.body = render('hello.html', title="Say Hello!", name="John")

# Second way
@app.route('/say-hello', methods=['GET'])
def home_page(request: Request, response: Response):
    response.body = render('hello.html', {
        'title': 'Say Hello!',
        'name': 'John'
    })
<!-- File: templates/hello.html -->
<html>
    <head>
        <title>{{title}}</title>
    </head>
    <body>
        <p>Hello {{name}}</p>
    </body>
</html>

Exception Handler

def on_exception(request: Request, response: Response, exc: Exception):
    response.text = str(exc)


app.add_exception_handler(on_exception)

Features (To-Do)

Here's a list of upcoming features that will be included in BizAPI:

  • Function-Based Routing
  • Parameterized Routing
  • Allowed Methods
  • Class-Based Routing
  • Simple Routes
  • Templates
  • Static Folder
  • Exception Handler
  • Custom Response
  • Middleware

License
This project is licensed under the MIT License.

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

bizapi-0.0.8.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

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

BizAPI-0.0.8-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file bizapi-0.0.8.tar.gz.

File metadata

  • Download URL: bizapi-0.0.8.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for bizapi-0.0.8.tar.gz
Algorithm Hash digest
SHA256 53899508a169649673bd1070b91bbedc55b3d6c0b5ac5ae0b16ab35ff49bfd2b
MD5 1048cf0ed20822e895bf7d41c2218933
BLAKE2b-256 07f17fbfcaafa940be019ac651dc392f727c5829c0b001e7915cffcbd4cfe55f

See more details on using hashes here.

File details

Details for the file BizAPI-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: BizAPI-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for BizAPI-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 de0f0a1c92b5ca86c4bee2cc8c6fe486f54748aa79c484c61885e9dea7750533
MD5 8c22d3373ee20a166ade3c1ec6886dad
BLAKE2b-256 ce3a3c254d98eafc88ed9702b7b0ca81ae48def7d7cf9231da18c0bb90c50ad1

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