2010-05-30 17 views
8

oKontrol istek türü

if request.method == 'POST': 
    pass 

İnsanların

if request.POST: 
    pass 

daha şık olmaya bulacaksınız olasıdır, istek POST olup olmadığını kontrol etmek şu yapısı kullanmak önerilir, ancak ve Özlü.

Kişisel tercihler dışında bunları kullanmamanın herhangi bir nedeni var mı?

+1

Bu Sinatra daha iyi bir yaklaşım kullanan bir yer olduğunu düşünüyorum: Farklı bir işleyicisi ile vb DELETE, GET, PUT, POST işlemek. Aramaları HTML istek yöntemine göre bölmek için API üretecimde gönderim olarak adlandırılan bir işlev var. –

+0

@Matthew Schinckel, kodların çoğaltılmasına veya en azından bazı ortak verilere ulaşmak için gerekli işlevlerin çağrılmasına neden oluyor, kullanıcı listesinden söz etmiyor mu? – Art

+0

@Art yapmamalı – andho

cevap

12

belgeleri bu konuda net:

Bu bir rica boş POST sözlükle POST üzerinden gelebilir olasıdır - diyelim ki, bir formdur, eğer POST HTTP yöntemi ile talep edildi ancak form verilerini içermiyor. Bu nedenle, POST yönteminin kullanımını kontrol etmek için request.POST ise kullanmamalısınız; bunun yerine, request.method == "POST" (yukarı bakın) kullanın.

>>> # 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 
İlgili konular