2016-10-02 5 views
0

맞춤형 로거를 사용하여 병 REST 서비스의 결과를 기록하려고합니다. 문제는 병 오류 페이지의 HTTP 응답 코드가 기본적으로 200이므로 로커가 200 OK을 기록합니다 (response.status이므로).병이 200이 아닌 올바른 응답 코드를 반환하도록 지정하십시오.

response.status을 설정하는 사용자 지정 오류 처리기를 만들려고했지만 작동하지 않습니다.

+0

문제를 이해하지 못합니다. 이를 증명하는 최소한의 작업 코드 스 니펫을 제공하면 기꺼이 살펴볼 것입니다. –

답변

0

abort() 함수는 HTTP 오류 페이지를 생성하기위한 바로 가기입니다. 그 외에는

from bottle import route, abort 
@route('/restricted') 
def restricted(): 
    abort(401, "Sorry, access denied.") 

는 HTTP 상태 코드 (및 기타 관련 정보는) 그들이 브라우저로 전송되는 시점까지 response라는 객체에 저장된다. Response.status 특성을 직접 조작하거나 미리 정의 된 도우미 메서드를 사용하여 그렇게 할 수 있습니다.

HTTP 상태 코드의 기본값은 200입니다. 대부분의 시나리오에서는 Response.status 특성을 수동으로 설정할 필요가 없지만 abort() 도우미를 사용하거나 적절한 상태 코드와 함께 HTTPResponse 인스턴스를 반환합니다.

자습서 문서의 HTTP ERRORS AND REDIRECTS을 참조하십시오.