Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python CGI प्रोग्रामिंग में GET और POST में क्या अंतर है?


GET और POST मेथड्स

आप कई स्थितियों में आए होंगे जब आपको अपने ब्राउज़र से वेब सर्वर को और अंततः अपने CGI प्रोग्राम को कुछ जानकारी पास करने की आवश्यकता होती है। सबसे अधिक बार, ब्राउज़र इस जानकारी को वेब सर्वर को पास करने के लिए दो मेथड्स का उपयोग करता है। ये मेथड्स GET मेथड और POST मेथड हैं।

GET मेथड का उपयोग करके जानकारी पास करना

GET मेथड एन्कोडेड यूजर जानकारी को पेज रिक्वेस्ट के साथ जोड़कर भेजता है। पेज और एन्कोडेड जानकारी `?` कैरेक्टर से अलग होते हैं जैसे:

https://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2

GET मेथड ब्राउज़र से वेब सर्वर को जानकारी पास करने का डिफ़ॉल्ट मेथड है और यह एक लंबी स्ट्रिंग उत्पन्न करता है जो आपके ब्राउज़र के Location बॉक्स में दिखाई देती है। कभी भी GET मेथड का उपयोग न करें यदि आपके पास पासवर्ड या अन्य संवेदनशील जानकारी सर्वर को पास करनी है। GET मेथड में साइज लिमिटेशन है: रिक्वेस्ट स्ट्रिंग में केवल 1024 कैरेक्टर्स भेजे जा सकते हैं। GET मेथड `QUERY_STRING` हेडर का उपयोग करके जानकारी भेजता है और आपके CGI प्रोग्राम में `QUERY_STRING` एनवायरनमेंट वेरिएबल के माध्यम से उपलब्ध होगा।

आप केवल की और वैल्यू पेयर्स को किसी भी URL के साथ जोड़कर जानकारी पास कर सकते हैं या HTML `

` टैग्स का उपयोग करके GET मेथड से जानकारी पास कर सकते हैं।

सिंपल URL उदाहरण - GET मेथड

यहां एक सिंपल URL है जो दो मानों को `hello_get.py` प्रोग्राम में GET मेथड का उपयोग करके पास करता है।

/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI

नीचे `hello_get.py` स्क्रिप्ट है जो वेब ब्राउज़र द्वारा दिए गए इनपुट को हैंडल करती है। हम `cgi` मॉड्यूल का उपयोग करने जा रहे हैं, जो पास की गई जानकारी को एक्सेस करना बहुत आसान बनाता है:

#!/usr/bin/python
import cgi, cgitb
form = cgi.FieldStorage()
first_name = form.getvalue('first_name')
last_name = form.getvalue('last_name')
print "Content-type:text/html\r\n\r\n"
print ""
print ""
print "Hello - Second CGI Program"
print ""
print ""
print "

Hello %s %s

" % (first_name, last_name) print "" print ""

सिंपल फॉर्म उदाहरण - GET मेथड

यह उदाहरण HTML फॉर्म और सबमिट बटन का उपयोग करके दो मान पास करता है। हम इसी CGI स्क्रिप्ट `hello_get.py` का उपयोग इस इनपुट को हैंडल करने के लिए करते हैं।

<form action="/cgi-bin/hello_get.py" method="get">
First Name: <input type="text" name="first_name">
<br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>

POST मेथड का उपयोग करके जानकारी पास करना

CGI प्रोग्राम को जानकारी पास करने का आमतौर पर अधिक विश्वसनीय मेथड POST मेथड है। यह जानकारी को ठीक उसी तरह पैकेज करता है जैसे GET मेथड, लेकिन URL में `?` के बाद टेक्स्ट स्ट्रिंग के रूप में भेजने के बजाय यह इसे एक अलग संदेश के रूप में भेजता है। यह संदेश CGI स्क्रिप्ट में स्टैंडर्ड इनपुट के रूप में आता है।

नीचे वही `hello_get.py` स्क्रिप्ट है जो GET और POST दोनों मेथड्स को हैंडल करती है।

#!/usr/bin/python
import cgi, cgitb
form = cgi.FieldStorage()
first_name = form.getvalue('first_name')
last_name = form.getvalue('last_name')
print "Content-type:text/html\r\n\r\n"
print ""
print ""
print "Hello - Second CGI Program"
print ""
print ""
print "

Hello %s %s

" % (first_name, last_name) print "" print ""

आइए फिर से वही उदाहरण लें जो HTML फॉर्म और सबमिट बटन का उपयोग करके दो मान पास करता है। हम इसी CGI स्क्रिप्ट `hello_get.py` का उपयोग इस इनपुट को हैंडल करने के लिए करते हैं।

<form action="/cgi-bin/hello_get.py" method="post">
First Name: <input type="text" name="first_name"><br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>
  1. - HTTP प्रोटोकॉल में GET और POST मेथड में क्या अंतर है?

    GET मेथड GET मेथड एन्कोडेड यूज़र जानकारी को पेज रिक्वेस्ट के साथ जोड़कर भेजता है। पेज और एन्कोडेड जानकारी ? कैरेक्टर द्वारा अलग की जाती है: https://www.example.com/hello?key1=value1&key2=value2 ब्राउज़र से वेब सर्वर तक जानकारी पास करने का डिफ़ॉल्ट मेथड है। ब्राउज़र के Location बार में एक लंबी

  1. Tkinter (Python) में root.destroy() और root.quit() में क्या अंतर है? Tkinter (Python) में root.destroy() और root.quit() में क्या अंतर है?

    जब हम Tkinter विंडो ऑब्जेक्ट के साथ destroy() मेथड को इनवोक करते हैं, तो यह मेनलूप प्रोसेस को समाप्त करता है और विंडो के अंदर सभी विजेट्स को नष्ट कर देता है। Tkinter destroy() मेथड का उपयोग मुख्य रूप से बैकग्राउंड में चल रहे इंटरप्रेटर को मारने और समाप्त करने के लिए किया जाता है।हालांकि, quit() मेथड

  1. Python में Tkinter और Tkinter.ttk के विजेट्स में क्या अंतर है? Python में Tkinter और Tkinter.ttk के विजेट्स में क्या अंतर है?

    tkinter.ttk एक मॉड्यूल है जिसका उपयोग Tkinter विजेट्स को स्टाइल करने के लिए किया जाता है। जैसे CSS का उपयोग HTML एलिमेंट को स्टाइल करने के लिए किया जाता है, वैसे ही हम Tkinter विजेट्स को स्टाइल करने के लिए tkinter.ttk का उपयोग करते हैं।यहां Tkinter विजेट और Tkinter.ttk के बीच प्रमुख अंतर हैं -Tkinte