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.2.0.tar.gz (9.8 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.2.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for boask-1.2.0.tar.gz
Algorithm Hash digest
SHA256 18211ec65d8e6f333788ea7b18f8586b43749dcc513df8b3f7009d8ba323dde8
MD5 333e224f1d85bdbd6656bdb93aaee7d4
BLAKE2b-256 59decdc83ce14fb382f42917657c40dfe20218d5a223ae084a2dc0e7c744665e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: boask-1.2.0-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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66536783e6ebd0c0def693d8cceafc6555c489bd6f19619b371054a14eea039f
MD5 4a02832f4e2d190175fa8ab8757b66b7
BLAKE2b-256 b9830630b26f263979e0db5aeb7d1367e8618f2b8249c88f1decc5bd87ee4d82

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