2013-06-06 2 views
0

Twisted web 기능을 사용하지만 상위 수준의 웹 프레임 워크는 사용하지 않는 프로젝트에서 작업하고 있습니다. 특정 http.Request 인스턴스를 만든 HTTPChannel 인스턴스 (트위스트)에 대한 액세스 권한을 얻으려면 어떻게해야합니까?Twisted의 http.Request 인스턴스에서 채널에 액세스

http.Request의 생성자는 채널을 인수로 갖지만 더 액세스하는 메서드/속성은 없습니다.

또한 factory 속성을 통해 채널에서 HTTPFactory 인스턴스에 액세스 할 수 있지만 요청 인스턴스에서 직접 공장에 액세스 할 수 있습니까?

답변

1

채널이 Request에서 직접 사용할 수있는 것 같습니다. Request.__init__ 고려 :

def __init__(self, channel, queued): 
    """                                  
    @param channel: the channel we're connected to.                       
    @param queued: are we in the request queue, or can we start writing to                 
     the transport?                              
    """ 
    self.notifications = [] 
    self.channel = channel 
    self.queued = queued 
    ... 

self.channel = channel은 당신이 찾고있는 단지 무엇을 것 같다.

+0

예, 이것은 제가 사용하는 래퍼 클래스와 같습니다. 하지만 어쩌면 접근이 쉽지 않은 이유가있을 것입니다. – vonPetrushev

+0

이 댓글을 이해할 수 없습니다. 그것은 wrapper 클래스가 아니라'twisted.web.http.Request .__ init__'입니다. 그것의 바로 위에'channel' 속성이 있습니다. 나는 "즉시 접근 할 수 없다"는 것을 모른다. –

+0

자, 생성자를 다시 구현하면 원래 구현 대신 요청을 사용하는 래퍼가 생성됩니다. "즉시 액세스 할 수 없음"- 요청의 원래 구현을 사용하면 인스턴스로 채널에 액세스 할 수 없습니다. – vonPetrushev

관련 문제