gpt4 book ai didi

Django 1.10 : "new style" middleware equivalent of `process_request()`

转载 作者:行者123 更新时间:2023-12-02 06:16:13 24 4
gpt4 key购买 nike

如何创建“新样式”中间件,以实现与使用“旧样式”的 process_request() Hook 等效的实现?

我已经使用 MiddlewareMixin 调整了 1.10 版之前的中间件 process_request()...

from django.utils.deprecation import MiddlewareMixin

class MyCustomMiddleware(MiddlewareMixin):

def process_request(self, request):
# My request logic
return response

我想知道如何进行“纯”>1.9“新风格”实现。我尝试通过实现 __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

现在您可以从您的 View 中获取每个请求的时间戳! (仅作为示例)

关于 Django 1.10 : "new style" middleware equivalent of `process_request()` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40876355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com