如何在Django Web应用程序中使用中间件进行特定调用?

我想在django网络应用程序中使用中间件。但是问题是我只想在用户成功登录后才使用中间件。我在set.py文件中声明了我的自定义中间件,但是它给出了错误,因为自定义中间件是在不必要的重调用时调用的。在进行一些特定的宁静呼叫时,我该如何调用中间件。

skcheung 回答:如何在Django Web应用程序中使用中间件进行特定调用?

您可以通过以下方式检查用户在django中间件中是否处于活动状态


class StackoverflowMiddleware(object):

    def __init__(self,get_response):
        self.get_response=get_response

    def __call__(self,request):
        try:
            response=self.get_response(request)
            if request.user.is_authenticated:
                print('Run when user Are login')
            else:
                print('Run when user Are not login')
        except Exception as e:
            self.process_exception(request,e)
        return response

    def process_exception(self,request,exception):
        print(exception.__class__.__name__)
        print(exception)
        return None

您还使用MiddleWareMixin检查用户身份验证

,

尝试检查网址路径。

class YourMiddleware:
def __init__(self,get_response):
    self.get_response = get_response

def __call__(self,request):
    response = self.get_response(request)
    if hasattr(request,'path') and 'loggin-url' in request.path:
        # Do smthing

    return response
本文链接:https://www.f2er.com/2633491.html

大家都在问