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

पायथन सीजीआई प्रोग्रामिंग में जीईटी और पोस्ट के बीच क्या अंतर है?

GET और POST मेथड्स

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

GET विधि का उपयोग करके जानकारी पास करना

GET विधि पृष्ठ अनुरोध में संलग्न एन्कोडेड उपयोगकर्ता जानकारी भेजती है। पृष्ठ और एन्कोडेड जानकारी को किसके द्वारा अलग किया जाता है? चरित्र इस प्रकार है -

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

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

आप किसी भी यूआरएल के साथ केवल कुंजी और मूल्य जोड़े को संयोजित करके जानकारी पास कर सकते हैं या आप जीईटी विधि का उपयोग करके जानकारी पास करने के लिए HTML

टैग का उपयोग कर सकते हैं।

सरल URL उदाहरण - विधि प्राप्त करें

यहां एक साधारण URL है, जो GET पद्धति का उपयोग करके hello_get.py प्रोग्राम में दो मान भेजता है।

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

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

#!/usr/bin/python
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage()
# Get data from fields
first_name = form.getvalue('first_name')
last_name  = form.getvalue('last_name')
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Hello - Second CGI Program</title>"
print "</head>"
print "<body>"
print "<h2>Hello %s %s</h2>" % (first_name, last_name)
print "</body>"
print "</html>"

यह निम्नलिखित परिणाम उत्पन्न करेगा -

Hello ZARA ALI

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

यह उदाहरण HTML FORM और सबमिट बटन का उपयोग करके दो मानों को पास करता है। हम इस इनपुट को संभालने के लिए समान 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>

उपरोक्त फॉर्म का वास्तविक आउटपुट यहां दिया गया है, आप प्रथम और अंतिम नाम दर्ज करें और फिर परिणाम देखने के लिए सबमिट बटन पर क्लिक करें।

First Name:
Last Name:
 Submit

POST विधि का उपयोग करके जानकारी पास करना

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

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

#!/usr/bin/python
# Import modules for CGI handling
import cgi, cgitb
# Create instance of FieldStorage
form = cgi.FieldStorage()
# Get data from fields
first_name = form.getvalue('first_name')
last_name  = form.getvalue('last_name')
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Hello - Second CGI Program</title>"
print "</head>"
print "<body>"
print "<h2>Hello %s %s</h2>" % (first_name, last_name)
print "</body>"
print "</html>"

आइए ऊपर दिए गए उदाहरण को फिर से लेते हैं जो 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>

उपरोक्त फॉर्म का वास्तविक आउटपुट यहां दिया गया है। आप प्रथम और अंतिम नाम दर्ज करें और फिर परिणाम देखने के लिए सबमिट बटन पर क्लिक करें।

First Name:
Last Name:
 Submit


  1. HTTP प्रोटोकॉल में GET और POST मेथड में क्या अंतर है?

    GET विधि GET विधि पृष्ठ अनुरोध में संलग्न एन्कोडेड उपयोगकर्ता जानकारी भेजती है। पृष्ठ और एन्कोडेड जानकारी को किसके द्वारा अलग किया जाता है? चरित्र इस प्रकार है - https://www.test.com/hello?key1=value1&key2=value2 ब्राउज़र से वेब सर्वर तक जानकारी भेजने के लिए जीईटी विधि डिफ़ॉल्ट विधि है और यह एक

  1. टिंकर (पायथन) में root.destroy () और root.quit () के बीच क्या अंतर है?

    जब हम नष्ट () . का आह्वान करते हैं टिंकर विंडो ऑब्जेक्ट के साथ विधि, यह मेनलूप . को समाप्त करती है विंडो के अंदर सभी विजेट्स को प्रोसेस और नष्ट कर देता है। टिंकर नष्ट करें () विधि मुख्य रूप से पृष्ठभूमि में चल रहे दुभाषिया को मारने और समाप्त करने के लिए उपयोग की जाती है। हालांकि, छोड़ें () mainloop

  1. पायथन में tkinter और tkinter.ttk के विजेट में क्या अंतर है?

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