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