on_request

on_request(task, request)

使用范围: server

编程语言: python

父类: Task 类

描述说明

使用 on_request 将请求发送到服务端进行处理。

task 参数是指向 task 树 的一个引用。

示例

添加到项目的任务/服务端模块的代码:

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

register.html 文件应该存在于应用程序文件夹下。

请求头的使用示例

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()

使用 Curl 命令访问应用程序将返回以下结果:

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

Successful test!

服务端命令行显示

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

另请参见

serve_page

路由

register.html