向WSGIRequest obj添加元数据

2024-10-02 20:41:35 发布

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

我有Django1.9中间件类:

class MyMiddleware(object):

    def process_request(self, request):
        token = self._get_or_create_token(request)
        #request.context['token'] = token 

问题是: -我想将令牌放到某种上下文中,以便通过应用程序流传递它。 -我避免将其放入请求会话,因为这会导致额外的数据库读/写

你能给我建议一些解决办法吗


Tags: 中间件orselftoken数据库应用程序getobject
1条回答
网友
1楼 · 发布于 2024-10-02 20:41:35

您可以向HttpRequest添加任何属性,因此可以通过以下方式实现此功能:

class MyMiddleware(object):

    def process_request(self, request):
        token = self._get_or_create_token(request)
        request.token = token

或者如果您真的想要某种context字典:

class MyMiddleware(object):

    def process_request(self, request):
        token = self._get_or_create_token(request)
        if not hasattr(request, 'context'):
            request.context = {}
        request.context['token'] = token

I have Django1.9 middleware class.

由于documented自2017年4月以来不再受支持,因此我强烈建议更新

相关问题 更多 >