Django अनुरोध पैरामीटर प्राप्त करें


84

एक Django अनुरोध में मेरे पास निम्नलिखित हैं:

POST:<QueryDict: {u'section': [u'39'], u'MAINS': [u'137']}>

मैं के मूल्यों कैसे मिलता है sectionऔर MAINS?

if request.method == 'GET':
    qd = request.GET
elif request.method == 'POST':
    qd = request.POST

section_id = qd.__getitem__('section') or getlist....

7
जादू के तरीकों में से किसी एक को सीधे न करें। हमेशा उपयुक्त सहायक फ़ंक्शन का उपयोग करें।
इग्नासियो वाज़केज़-अब्राम्स

k वर्गों को डिकोड करने का कोई तरीका है
हल्क

1
इन वस्तुओं पर django प्रलेखन के माध्यम से पढ़ें: docs.djangoproject.com/en/dev/ref/request-response/… । अजगर में तानाशाही की तुलना में कुछ अंतर हैं।
स्की

जवाबों:


90

आप किसी सामान्य शब्दकोश जैसे []किसी QueryDictऑब्जेक्ट से मान निकालने के लिए उपयोग कर सकते हैं ।

# HTTP POST variables
request.POST['section'] # => [39]
request.POST['MAINS'] # => [137]

# HTTP GET variables
request.GET['section'] # => [39]
request.GET['MAINS'] # => [137]

# HTTP POST and HTTP GET variables (Deprecated since Django 1.7)
request.REQUEST['section'] # => [39]
request.REQUEST['MAINS'] # => [137]

9
इन सभी वर्षों के बाद बस एक संकेत: request.REQUEST इस बीच पदावनत है
अरोनॉडल

189

आप भी उपयोग कर सकते हैं:

request.POST.get('section','') # => [39]
request.POST.get('MAINS','') # => [137] 
request.GET.get('section','') # => [39]
request.GET.get('MAINS','') # => [137]

इसका उपयोग यह सुनिश्चित करता है कि आपको कोई त्रुटि नहीं मिलती है। यदि किसी कुंजी के साथ POST / GET डेटा को परिभाषित नहीं किया गया है, तो एक अपवाद के बजाय फ़ॉलबैक मान (.get () का दूसरा तर्क) का उपयोग किया जाएगा।


1
निश्चित रूप से सबसे मजबूत तरीका है!
d- कोडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.