Python 将自定义中间件添加到settings.py时,Django应用程序ERR_EMPTY_响应
我在project/app/middleware.py文件中创建了一个LoggedInUserMiddleware,并将其作为project/master/settings.py文件的中间件部分的最后一个条目添加。在将其添加到settings.py之前,该应用程序响应良好。将其添加到settings.py后,我会从我的应用程序的任何url获得一个ERR_EMPTY_响应 我的LoggedInUserMiddleware目前看起来像这样,只是为了让它不会崩溃Python 将自定义中间件添加到settings.py时,Django应用程序ERR_EMPTY_响应,python,django,middleware,Python,Django,Middleware,我在project/app/middleware.py文件中创建了一个LoggedInUserMiddleware,并将其作为project/master/settings.py文件的中间件部分的最后一个条目添加。在将其添加到settings.py之前,该应用程序响应良好。将其添加到settings.py后,我会从我的应用程序的任何url获得一个ERR_EMPTY_响应 我的LoggedInUserMiddleware目前看起来像这样,只是为了让它不会崩溃 class LoggedInUserM
class LoggedInUserMiddleware(object):
def process_request(self, request):
return None
据我所知,中间件应该对每个新的html请求执行,但绝对不执行任何操作。您已经编写了一个(Django<1.10)。如果您使用的是中间件
设置,而不是中间件_类
,那么您应该编写一个
一种选择是使用
但是,如果您不需要支持旧的中间件类
设置,则无需使用mixin,我将从文档中的示例开始:
class LoggedInUserMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
# One-time configuration and initialization.
def __call__(self, request):
# Code to be executed for each request before
# the view (and later middleware) are called.
response = self.get_response(request)
# Code to be executed for each request/response after
# the view is called.
return response
顺便问一下,您希望
LoggedInUserMiddleware
做什么?确保您没有复制内置身份验证中间件的功能!如果匿名用户请求我的任何url,我希望中间件重定向到登录url。我刚刚意识到我所关注的链接,就像你说的,已经过时了!
class LoggedInUserMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
# One-time configuration and initialization.
def __call__(self, request):
# Code to be executed for each request before
# the view (and later middleware) are called.
response = self.get_response(request)
# Code to be executed for each request/response after
# the view is called.
return response