.ini 파일에 debug = false
을 설정하면 Pylons 0.9.7 컨트롤러의 request
개체에 액세스 할 수 없습니다.Pylons 오류 "이 개체에 대한 스레드 (이름 : 요청)가 debug = false로 등록되었습니다."
!!! request = <Request at 0x9571190 POST http://my_url>
!!! request.params = UnicodeMultiDict([... lots of stuff ...])
나는 다음과 같은 얻을 debug = false
을 설정 한 경우 :
!!! request = <paste.registry.StackedObjectProxy object at 0x4093790>
Error - <type 'exceptions.TypeError'>: No object (name: request) has been registered for this thread
스택 추적 확인한다 디버깅
def run_something(self):
print('!!! request = %r' % request)
print('!!! request.params = %r' % request.params)
yield 'Stuff'
이 잘 작동하고 출력합니다 활성화 : 나는 다음과 같은 코드가 있습니다 오류는 print('!!! request.params = %r' % request.params)
행에 있습니다.
붙여 넣기 서버를 사용하여 실행 중이며이 두 줄은 내 컨트롤러 메서드의 맨 처음 줄입니다.
이것은 문에 도달하지 않은 경우에도 yield
문이있는 경우에만 발생합니다. 나는 Pylons가 그것이 생성기 방법이라고보고 다른 스레드에서 실행합니다. 내 질문 :
debug = false
과 어떻게 작동합니까?debug = true
과 함께 작동하는 이유는 무엇입니까? 분명히 이것은 매우 위험한 버그입니다. 왜냐하면 평소에debug = true
으로 개발 했으므로 개발 중에는 눈에 띄지 않을 수 있습니다.
아마도 debug = false는 middleware.py에서 RegistryManager를 제외하고 있습니까? –