Skip to main content

Pure Python website engine. Zero dependencies. Real JSX templates.

Project description

Boask

Boask Logo
Pure Python website engine.
Zero external dependencies.
pip install boask

Quick Start

from boask import route, use, run_server, html_templates

@route("/")
def home(handler):
    return html_templates.render("home.html", title="Boask")

if __name__ == "__main__":
    run_server()

Comparison to Flask

  1. Lightweight.
  2. No external dependecies.
  3. Unlike Flask, it's for beginners, and movers from Flask.
  4. No {{ url_for('static', filename='css/main.css') }} (example), we use /static/css/main.css for example!

Info

  1. Do not install a earlier version than 1.0.4, you can 1.0.0 but that one is not supported! You can't import them! Also, do not install 1.1.4! It had a bug in strict slashes and it did 500 always! I don't know how the 1.1.4 issue happened! Do not install 1.1.5a2 also! It has import error instead of import .error
Changelog
Right now

New! "app" yeah, like Flask

To use

from boask import Boask

app = Boask()

And to do it with route (yeah, i added app.route()) this example is for HTML templates

from boask import Boask, route, use, run_server, html_templates

app = Boask()

def home(handler):
    return html_templates.render("home.html")

Note: Replace home.html with your file name (e.g index.html)

New in authentication! Banning!

Usage:

from auth.ban import Ban

# 'handler' is the instance of your HTTP request handler (from BaseHTTPRequestHandler, for example).
response = Ban.ban_user(handler)

Advanced Auth Added!

Example:

from boask.core import route, use, run_server, Boask
from boask.middleware.advanced_auth import AdvancedAuth
from boask.auth.login import login
from boask.auth.register import register

app = Boask()
auth = AdvancedAuth()

use(auth.middleware)

@route("/register", methods=["POST"])
def do_register(handler):
    return register(handler)

@route("/login", methods=["POST"])
def do_login(handler):
    return login(handler)

@route("/dashboard", methods=["GET"])
@auth.protected
def dashboard(handler):
    return f"Welcome, {handler.user}!"

if __name__ == "__main__":
    run_server(port=8080, host="0.0.0.0")

INFO: DO NOT USE 1.1.6 YOU CAN BUT IT HAS A BROKEN README.

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

boask-1.1.9.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

boask-1.1.9-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file boask-1.1.9.tar.gz.

File metadata

  • Download URL: boask-1.1.9.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for boask-1.1.9.tar.gz
Algorithm Hash digest
SHA256 c0e20450a5ce813a49ec18dab745bbe6693ee514a08fe912d4189dba6f8db051
MD5 c209a109024f969a201b8d472d144417
BLAKE2b-256 69329a5cbe1cf2d20a5700f9fb87eb3e9a4410d39c8e0022a1e0448b2d8fe2f0

See more details on using hashes here.

File details

Details for the file boask-1.1.9-py3-none-any.whl.

File metadata

  • Download URL: boask-1.1.9-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for boask-1.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c92d6b0d30a92be31097690d35cf6b1899f54c8d1f6fb7d7f397f9ae78abbe1c
MD5 811ad04ce2d1aecac54e420bb9dde6b1
BLAKE2b-256 45f7a7683cef672685636b965d5d74321eebc15e3129eb620beb9fab91aba506

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