2010-05-30 15 views
8

यह, कि क्या अनुरोध पोस्ट है की जाँच करने के निम्नलिखित निर्माण का उपयोग करने केचेक अनुरोध प्रकार

if request.method == 'POST': 
    pass 

यह संभावना है कि लोगों

if request.POST: 
    pass 

अधिक सुरुचिपूर्ण होने के लिए मिल जाएगा है की सिफारिश की है जबकि और संक्षिप्त।

क्या व्यक्तिगत वरीयता के अलावा इसका उपयोग करने के कोई कारण नहीं हैं?

+1

मुझे लगता है कि यह एक ही स्थान पर सिनात्रा एक बेहतर दृष्टिकोण का उपयोग करता है: आप पोस्ट संभाल, डाल, मिलता है, हटाएँ, आदि एक अलग हैंडलर के साथ। मेरे पास HTML अनुरोध विधि के अनुसार कॉल को विभाजित करने के लिए मेरे एपीआई जेनरेटर में प्रेषण नामक एक फ़ंक्शन है। –

+0

@Matthew Schinckel उपयोगकर्ताओं की सूची कहने के लिए कुछ सामान्य डेटा प्राप्त करने के लिए आवश्यक कोडों के लिए कोड डुप्लिकेशन या कम से कम डुप्लिकेशंस का नेतृत्व नहीं करता है? – Art

+0

@Art इसे नहीं करना चाहिए – andho

उत्तर

12

प्रलेखन इस बारे में स्पष्ट है:

ऐसा नहीं है कि एक अनुरोध एक खाली पद शब्दकोश के साथ पोस्ट के माध्यम से में आ सकते हैं संभव है - अगर, कहते हैं, एक रूप है POST HTTP विधि के माध्यम से अनुरोध किया गया है लेकिन फ़ॉर्म डेटा शामिल नहीं है। इसलिए, यदि अनुरोध है तो आपको 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 
संबंधित मुद्दे