Skip to main content

Async (ASGI) Python web framework

Project description

alt text

Backendpy

Python web framework for building the backend of your project!

Some features:

  • Asynchronous programming (ASGI-based projects)
  • Application-based architecture and the ability to install third-party applications in a project
  • Support of middlewares for different layers such as Application, Handler, Request or Response
  • Supports events and hooks
  • Data handler classes, including validators and filters to automatically apply to request input data
  • Supports a variety of responses including JSON, HTML, file and… with various settings such as stream, gzip and…
  • Router with the ability to define urls as Python decorator or as separate files
  • Application-specific error codes
  • Optional default database layer by the Sqlalchemy async ORM with management of sessions for the scope of each request
  • Optional default templating layer by the Jinja template engine

Requirements

Python 3.8+

Documentation

Documentation is available at https://backendpy.readthedocs.io.

Quick Start

Installation

$ pip3 install backendpy

Or use the following command to install optional additional libraries:

$ pip3 install backendpy[full]

You also need to install an ASGI server such as Uvicorn, Hypercorn or Daphne:

$ pip3 install uvicorn

Create Project

project/main.py

from backendpy import Backendpy

bp = Backendpy()

Create Application

project/apps/hello/main.py

from backendpy.app import App
from .handlers import routes

app = App(
    routes=[routes])

project/apps/hello/handlers.py

from backendpy.router import Routes
from backendpy.response import Text

routes = Routes()

@routes.get('/hello-world')
async def hello(request):
    return Text('Hello World!')

Activate Application

project/config.ini

[networking]
allowed_hosts =
    127.0.0.1:8000

[apps]
active =
    project.apps.hello

Run Project

Inside the project root path:

$ uvicorn main:bp

Command line

The basic structure of a project mentioned above can also be created by commands:

$ backendpy create_project --name myproject

To create a project with more complete sample components:

$ backendpy create_project --name myproject --full

Or to create an application:

$ backendpy create_app --name myapp
$ backendpy create_app --name myapp --full

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

backendpy-0.2.2a2.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

backendpy-0.2.2a2-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

Details for the file backendpy-0.2.2a2.tar.gz.

File metadata

  • Download URL: backendpy-0.2.2a2.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for backendpy-0.2.2a2.tar.gz
Algorithm Hash digest
SHA256 1dd995245a1b1680813fa4087612e08a9d99b6ddbff03b7940e33e505a0f98a0
MD5 1e93da696217fb99639d9db6f3f5bfec
BLAKE2b-256 fda71a580255291744895d038b8365fb321b74c7c31cf94f8a4a1269e12ae375

See more details on using hashes here.

File details

Details for the file backendpy-0.2.2a2-py3-none-any.whl.

File metadata

  • Download URL: backendpy-0.2.2a2-py3-none-any.whl
  • Upload date:
  • Size: 44.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for backendpy-0.2.2a2-py3-none-any.whl
Algorithm Hash digest
SHA256 f84ad404df4399993623ffbddb81d0a269c2324faf6fa0c540f16f30c35d8b51
MD5 8ee2c71ff2e5bf42941bde42bab2d892
BLAKE2b-256 7726af9e9e35a836d24cf84dfef99b1c52f69b4f73b41fd828b7f6cdfbb62d41

See more details on using hashes here.

Supported by

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