【问题标题】:How to know in a middleware which type of url entered?如何在中间件中知道输入了哪种类型的 url?
【发布时间】:2019-10-27 12:55:18
【问题描述】:

最近我在 Django 中开始了一个新的简单项目。我写了一些中间件。但是在其中一个中间件中,我想知道调用了哪个 URL,因为我必须做出与 URL 相关的决定。

我使用了这个代码:

import os

path = os.environ['PATH_INFO']

但它会出错,如下所述:

    raise KeyError(key) from None
KeyError: 'PATH_INFO'

那么我如何知道中间件中的 URL?

【问题讨论】:

  • 你可以使用request.path_info

标签: django middleware url-pattern


【解决方案1】:

您可以使用request.path attribute [Django-doc]request.path_info attribute [Django-doc]获取request中的路径。例如,您可以使用以下简单的中间件打印path

from django.utils.deprecation import MiddlewareMixin

class MyMiddleware(MiddlewareMixin):

    def process_request(self, request):
        print(request.path)

您可以使用request.schema attribute [Django-doc] 访问URL 的架构(httphttps 等),并使用request.method attribute [Django-doc] 访问请求的方法(GET、@ 987654335@、PUTPATCHDELETE等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多