2010-05-30 4 views
8

확인 요청 유형

if request.method == 'POST': 
    pass 

사람들이

if request.POST: 
    pass 

더 우아 찾을 가능성이 높습니다, 요청이 POST 여부를 확인하려면 다음 구문을 사용하는 것이 좋습니다 동안 간결한.

개인적인 취향과는 별도로 사용하지 않는 이유가 있습니까?

+1

나는이시나가 더 나은 방법을 사용하여 한 장소라고 생각 : 다른 핸들러 등, DELETE, GET, PUT, POST를 처리합니다. HTML 요청 메서드에 따라 호출을 분할하기 위해 API 생성기에서 dispatch라는 함수가 있습니다. –

+0

@Matthew Schinckel은 코드 중복이나 최소한 공통 데이터를 얻기 위해 필요한 함수 호출의 중복 (예 : 사용자 목록)을 유도하지 못합니까? – Art

+0

@Art – andho

답변

12

문서는 이것에 대해 분명하다

그것은 요청이 빈 POST 사전에 POST를 통해 들어올 수있는 가능성 - 말하자면, 한 형태이며, 경우 POST HTTP 메소드를 통해 요청했지만 양식 데이터는 포함하지 않습니다. 따라서 request.POST를 사용하여 POST 메소드의 사용을 확인하지 않아야합니다. 대신 request.method == "POST"(위 참조)를 사용하십시오.

>>> # assume an empty POST request would be treated as a dict 
>>> bool({}) 
False 
>>> # it would be a POST request, but request.POST would evaluate to False