Tornado에서 Middleware 구현 방법

1424 단어 middlewaretornado

Middleware 정의

    class MiddleWare(object):
        def process_request(self, request):
            #request RequestHandler 
            pass
    
        def process_response(self, request):
            pass
 

로그인 확인 Middleware 구현


class AuthorizationException(Exception):
    def __init__(self, msg):
        super(AuthorizationException, self).__init__(403, msg)


class CheckLogin(MiddleWare):

    def is_login(self, requesthandler):
        return True
        
    def process_request(self, request):
        if must_login(request):
            if not self.is_login(request):
                raise AuthenticationException(403, "login required")

    def is_login(self, request):
        return request.get_session() != None

미들웨어 등록 장소 찾기

  • Tornado를 초기화할 때 Middleware를 응용 프로그램에 등록할 수 있습니다

  • Middlware 호출

    class MiddleRequestHandler(RequestHandler):
        def prepare(self):
            
            for middleware in self.app.middleware:
                middleware.process_request(self)
            
        def finish(self):
            for middleware in self.app.middleware:
                middleware.process_response(self)
    
            super(MiddleRequestHandler, self).finish()

    실행 가능한 예

  • 로그인 검사를 실현합니다
  • 온라인 통계

  • https://gist.github.com/alex8224/7e4ca9a27727cf2a86b6

    좋은 웹페이지 즐겨찾기