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_template


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


# Second way
@app.route('/say-hello', methods=['GET'])
def home_page(request: Request, response: Response):
    response.html = render_template('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)

Custom Response

@app.route('/json')
def json(request: Request, response: Response):
    response_data = {
        'message': 'Hello World',
    }
    response.json = response_data
@app.route('/text')
def text(request: Request, response: Response):
    response.text = "Hello World"
from bizapi import render_template

@app.route('/html')
def html(request: Request, response: Response):
    response.html = render_template('index.html', text='Say Hello')

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.9.tar.gz (7.0 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.9-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bizapi-0.0.9.tar.gz
  • Upload date:
  • Size: 7.0 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.9.tar.gz
Algorithm Hash digest
SHA256 ab1d5836a13c59da30259d4e5391b9e568055742280931e677cce5f0dd536973
MD5 87a57d11e08473ed08d02e3a37560d97
BLAKE2b-256 b387caaa50f29926acd63a8098c050f21e8bf394338b665a44f307fde7255b2d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: BizAPI-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 6.9 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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 cbc4ee8ae0582659f710d509f83ea4f12ea5c3cfe700c3103e5f7bff8c368c33
MD5 951dc871fac285640d997bedcd10988f
BLAKE2b-256 75d240f85a39592400acaa865d5e603b165384e8e8e714246708f270d9f53125

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