在 Python Flask 中,你可以使用装饰器(decorators)或中间件(middlewares)来实现类似 Spring AOP 的日志记录功能,以捕获和记录操作过程的请求和返回。
一种常见的方法是使用装饰器来包装路由处理函数,在函数执行前后记录相关信息:
```python
from functools import wraps
from flask import Flask, request, jsonify
app = Flask(__name__)
def log_request_response(func):
@wraps(func)
def wrapper(*args, **kwargs):
# 记录请求信息
request_data = {
'method': request.method,
'path': request.path,
'headers': dict(request.headers),
'body': request.get_json() or request.form.to_dict()
}
print('Request:', request_data)
# 执行路由处理函数
response = func(*args, **kwargs)
# 记录响应信息
response_data = {
'status_code': response.status_code,
'body': response.json
}
print('Response:', response_data)
return response
return wrapper
@app.route('/example', methods=['POST'])
@log_request_response
def example():
# 处理请求
data = request.json
# ...
# 返回响应
return jsonify({'message': 'success'})
if __name__ == '__main__':
app.run()
```
在这个例子中,`log_request_response` 装饰器被应用到 `/example` 路由的处理函数上。在每次请求到达该路由时,装饰器将先记录请求信息,然后执行路由处理函数,最后记录响应信息。
通过在适当的地方添加类似的装饰器,你可以捕获和记录其他路由的请求和返回。
注意,上述例子中只是简单地将请求和响应信息打印到控制台,你可以根据实际需求将这些信息记录到日志文件或其他存储中。
标签:__,请求,记录,python,Spring,request,flask,response,路由 From: https://www.cnblogs.com/gaosj20210301/p/17687870.html