将元数据添加到 WSGIRequest 对象
Add metadata to WSGIRequest object
我有Django1.9中间件class:
class MyMiddleware(object):
def process_request(self, request):
token = self._get_or_create_token(request)
#request.context['token'] = token
问题是:
- 我想将令牌放入某种上下文以通过应用程序流传递它。
- 我避免将它放入请求会话中,因为它会导致额外的数据库 reading/writing.
你能给我一些解决方案吗?
您可以向 HttpRequest
添加任何属性,因此您可以通过以下方式实现:
class MyMiddleware(object):
def process_request(self, request):
token = self._get_or_create_token(request)
<b>request.token</b> = token
或者如果你真的想要某种 context
字典:
class MyMiddleware(object):
def process_request(self, request):
token = self._get_or_create_token(request)
if not hasattr(request, 'context'):
request.context = {}
<b>request.context['token']</b> = token
I have Django1.9 middleware class.
documented, django-1.9 自 2017 年 4 月 以来不再受支持,因此我强烈建议更新。
我有Django1.9中间件class:
class MyMiddleware(object):
def process_request(self, request):
token = self._get_or_create_token(request)
#request.context['token'] = token
问题是: - 我想将令牌放入某种上下文以通过应用程序流传递它。 - 我避免将它放入请求会话中,因为它会导致额外的数据库 reading/writing.
你能给我一些解决方案吗?
您可以向 HttpRequest
添加任何属性,因此您可以通过以下方式实现:
class MyMiddleware(object):
def process_request(self, request):
token = self._get_or_create_token(request)
<b>request.token</b> = token
或者如果你真的想要某种 context
字典:
class MyMiddleware(object):
def process_request(self, request):
token = self._get_or_create_token(request)
if not hasattr(request, 'context'):
request.context = {}
<b>request.context['token']</b> = token
I have Django1.9 middleware class.
documented, django-1.9 自 2017 年 4 月 以来不再受支持,因此我强烈建议更新。