中间件中的Django请求对象?

2024-09-25 18:19:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个定制的Prometheus中间件类来进行一些监视,我想在中间件中为给定的请求构造或检索Django Rest FrameworkRequest对象,这样我就可以在度量中捕获request.version。在

但是,我下面代码中的request参数似乎是一个WSGIRequest对象。是否可以在中间件中识别DRFHttpRequest对象?下面的代码。。。在

if django.VERSION >= (1, 10, 0):
   from django.utils.deprecation import MiddlewareMixin
else:
   MiddlewareMixin = object

class CustomPrometheusAfterMiddleware(MiddlewareMixin):

   def process_response(self, request, response):
       # Do some cool things
       return response

Tags: 中间件对象django代码rest参数度量version
1条回答
网友
1楼 · 发布于 2024-09-25 18:19:49

如果您check the source code,Django的HttpRequest对象被包装在views.APIView.dispatch中的DRF的Request对象中,所以我认为您必须经过很多步骤才能得到它。最好的办法可能是修补APIView来存储您在实际请求(Django的HttpRequest或的子类)或响应FWIW上所追求的信息,这样您就可以将它们放回中间件中。在

相关问题 更多 >