Django 1.10:"new style" 等同于 `process_request()` 的中间件
Django 1.10: "new style" middleware equivalent of `process_request()`
如何创建 "new style" 中间件,它实现了与 "old style" 一起使用 process_request()
挂钩的等效实现?
我已经使用 MiddlewareMixin
...
调整了 1.10 之前的中间件 process_request()
from django.utils.deprecation import MiddlewareMixin
class MyCustomMiddleware(MiddlewareMixin):
def process_request(self, request):
# My request logic
return response
我想知道如何执行 "pure" >1.9 "new style" 实施。我尝试通过像这样实现 __init__()
和 __call__()
来做到这一点,但运气不佳:
class MyCustomMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# My request logic
return response
谢谢。
举个例子...
class TimeStampMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
request.timestamp = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
response = self.get_response(request)
return response
现在您可以从您的视图中获取每个请求的时间戳! (仅为示例)
如何创建 "new style" 中间件,它实现了与 "old style" 一起使用 process_request()
挂钩的等效实现?
我已经使用 MiddlewareMixin
...
process_request()
from django.utils.deprecation import MiddlewareMixin
class MyCustomMiddleware(MiddlewareMixin):
def process_request(self, request):
# My request logic
return response
我想知道如何执行 "pure" >1.9 "new style" 实施。我尝试通过像这样实现 __init__()
和 __call__()
来做到这一点,但运气不佳:
class MyCustomMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# My request logic
return response
谢谢。
举个例子...
class TimeStampMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
request.timestamp = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
response = self.get_response(request)
return response
现在您可以从您的视图中获取每个请求的时间戳! (仅为示例)