on_request

on_request(task, request)

domain: server

language: python

class Task class

Description

Use on_request to send a request to the server for processing.

The task parameter is a reference to the task tree

Example

Code added to project Task/Server Module:

def on_request(task, request):
        parts = request.path.strip('/').split('/')
        if parts[0] == 'register.html':
            return task.serve_page('register.html')

The register.html file should exist within the application folder.

The headers usage example

def on_request(task, request):
    from jam.wsgi import Response
    from werkzeug.exceptions import MethodNotAllowed

    parts = request.path.strip('/').split('/')

    if not parts[0]:
        if task.logged_in(request):
            return task.serve_page('index.html')
        else:
            return task.redirect('/login.html')

    elif parts[0] == 'test_test':
        if request.method == 'POST':
            print(request.method )
            print(request.headers)
            api_key = request.headers['Api-key']

            print(api_key)
            return Response('Succesfull test!')
        if request.method == 'GET':
            raise MethodNotAllowed()

Accessing the application with Curl command will reply with the result:

...\> curl -X POST "http://127.0.0.1:8080/test_test"  -H "api-key: 122448"
      Successful test!

The server console displaying:

127.0.0.1 - - [10/Dec/2025 11:00:27] "POST /api HTTP/1.1" 200 -
POST
Host: 127.0.0.1:8080
User-Agent: curl/8.16.0
Accept: */*
Api-Key: 122448
Content-Length: 77
Content-Type: application/x-www-form-urlencoded

122448

See also

serve_page

routing

register.html