Changelog

Context Proxies

BustAPI relies on context locals to make global variables like request thread-safe. These objects look like global variables but actually point to data specific to the current request/thread.

request

The Request object for the current request.

  • method (str): HTTP method (GET, POST, etc).
  • path (str): The path of the request.
  • args (MultiDict): Parsed query parameters.
  • form (MultiDict): Parsed form data.
  • headers (Headers): Incoming request headers.
  • get_json(force=False, silent=False): Parses body as JSON.

g

A general purpose object for storing data during a single request context.

Usage Span

Data stored in g is lost when the request ends. It is heavily used in before_request handlers to store user sessions or database connections.

from bustapi import g

@app.before_request
def load_user():
    g.user = get_user()

@app.route("/")
def index():
    return f"Hello {g.user.name}"

session

A dict-like object that stores data across requests using signed cookies.

from bustapi import session

# Setting a value
session['username'] = 'admin'

# Getting a value
user = session.get('username')
Secret Key

To use sessions, you must set app.secret_key to a secure random string.