我是python(3)/ Django(2.1.4)框架的新手。我想获取路径变量,该变量存在于中间件的所有URL中。我在下面尝试了一些方法,但对我不起作用。
URL:
urlpatterns = [
path('admin/', admin.site.urls),
path('api/v1/mywebsite/<uuid:path_variable_name>/', include('website.urls')),
]
中间件:
class my_middle_ware(MiddlewareMixin):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
print(request.GET.get['path_variable_name'])
print(request.POST.get['path_variable_name'])
response = self.get_response(request)
return response
我想在中间件中获取path_variable_name
。而不是使用request.GET,request.POST等,是否有任何通用方法来拦截所有请求request.getPathVariable('path_variabl_name')?提前谢谢。
答案 0 :(得分:1)
直到the url is resolved,这些参数才可用。但是,基于类的中间件也具有可用的钩子process_view
,其中view_args
和view_kwargs
可用-url中的参数将位于其中之一。