विषयसूची
- पर्यावरण सेटअप
- स्थानीय पर्यावरण सेटअप
- पायथन कैसे प्राप्त करें
- पायथन कैसे स्थापित करें
- विंडोज इंस्टालेशन
- यूनिक्स/लिनक्स स्थापना
- मैक स्थापना
- पायथन के लिए पथ की स्थापना
- यूनिक्स/लिनक्स के लिए पथ निर्धारित करना
- विंडोज़ के लिए पथ सेट करना
- पायथन पर्यावरण चर
- चल रहा अजगर
- मूल वाक्य रचना
- पायथन पहचानकर्ता
- पायथन स्टेटमेंट
- पायथन में इंडेंट
- पायथन में टिप्पणियाँ
- इनपुट प्राप्त करना
- आउटपुट प्रदर्शित करें
- चर प्रकार
- चर के लिए मान निर्दिष्ट करना
- पायथन डेटा प्रकार
- स्ट्रिंग्स
- टुपल्स
- सूचियों
- नंबर
- बेसिक ऑपरेटर्स
- असाइनमेंट ऑपरेटर
- बिटवाइज ऑपरेटर
- लॉजिकल ऑपरेटर
- अंकगणित संचालिका
- तुलना ऑपरेटर
- पहचान संचालिका
- सदस्यता ऑपरेटर
- निर्णय लेना
- अगर बयान
- यदि नहीं तो
- नेस्टेड अगर
- अगर-एलिफ-अन्य-सीढ़ी
- शॉर्टहैंड अगर स्टेटमेंट
- आशुलिपि यदि-अन्य कथन
- छोरों
- घुमाव के दौरान
- पाश के लिए
- स्थिर फंदा
- लूप कंट्रोल स्टेटमेंट
- बयान जारी रखें
- ब्रेक स्टेटमेंट
- पास स्टेटमेंट
- नंबर
- संख्या प्रकार रूपांतरण
- यादृच्छिक संख्या कार्य
- त्रिकोणमितीय फलन
- गणितीय कार्य
- स्ट्रिंग्स
- एक स्ट्रिंग बनाना
- स्ट्रिंग स्पेशल ऑपरेटर्स
- स्ट्रिंग फ़ॉर्मेटिंग ऑपरेटर्स
- एस्केप कैरेक्टर
- स्ट्रिंग विधियों में निर्मित
- टुपल्स
- टुपल्स में मूल्यों तक पहुंचना
- टुपल्स अपडेट कर रहा है
- बेसिक टुपल ऑपरेटर
- टुपल फ़ंक्शंस में निर्मित
- अनुक्रमण और टुकड़ा करना
- एक टपल हटाना
- सूचियों
- सूचियों में मूल्यों तक पहुंचना
- सूचियों को अद्यतन करना
- मूल सूची ऑपरेटर
- सूची कार्यों और विधियों में निर्मित
- अनुक्रमण और टुकड़ा करना
- सूची तत्व हटाएं
- शब्दकोश
- एक शब्दकोश बनाना
- शब्दकोश में तत्वों को जोड़ना
- शब्दकोश से तत्वों को हटाना
- पायथन शब्दकोश के तरीके
- तिथि और समय
- समय Tuple
- समय मॉड्यूल
- कैलेंडर मॉड्यूल
- कार्यों
- किसी फ़ंक्शन को कैसे परिभाषित करें
- किसी फ़ंक्शन को कॉल करना
- संदर्भ द्वारा पास करें
- मूल्य से गुजरें
- फ़ंक्शन तर्क
- चर-लंबाई तर्क
- आवश्यक तर्क
- डिफ़ॉल्ट तर्क
- कीवर्ड तर्क
- बेनामी कार्य
- मॉड्यूल
- आयात विवरण
- आयात विवरण से
- आयात से * विवरण
- मॉड्यूल का पता लगाना
- स्थानीय () और वैश्विक () कार्य
- नेमस्पेस और स्कोपिंग
- डीआईआर ( ) समारोह
- पुनः लोड () फ़ंक्शन
- फ़ाइलें I / O
- फ़ाइल खोलना
- फ़ाइल वस्तु विशेषताएँ
- फ़ाइल बंद करना
- कथन के साथ
- लिखने की विधि
- पढ़ने की विधि
- नाम बदलें () विधि
- निकालें () विधि
- फ़ाइल स्थिति
- अपवाद
- एक अपवाद क्या है?
- एक अपवाद को संभालना
- अपवाद उठाना
- मानक अपवादों की सूची
- उपयोगकर्ता परिभाषित अपवाद
- पायथन में अभिकथन
- कक्षाएं और वस्तुएं
- कक्षाएं बनाना
- क्लास ऑब्जेक्ट्स
- अभिगम गुण
- इन-बिल्ट क्लास एट्रीब्यूट्स
- कचरा संग्रहण
- वर्ग वंशानुक्रम
- ओवरराइडिंग तरीके
- नियमित अभिव्यक्ति
- मैच समारोह
- खोज समारोह
- नियमित अभिव्यक्ति संशोधक
- नियमित अभिव्यक्ति पैटर्न
- चरित्र वर्ग
- दोहराव के मामले
- एंकर
- सीजीआई प्रोग्रामिंग
- MySQL डाटाबेस एक्सेस
- नेटवर्क
- सॉकेट क्या हैं?
- सॉकेट मॉड्यूल
- पायथन इंटरनेट मॉड्यूल
- ईमेल भेज रहा हूं
- पायथन का उपयोग करके एक HTML ईमेल भेजना
- ईमेल के रूप में अटैचमेंट भेजना
- मल्टीथ्रेड प्रोग्रामिंग
- एक नया सूत्र शुरू करना
- थ्रेडिंग मॉड्यूल
- थ्रेड्स को सिंक्रोनाइज़ करना
- बहु-थ्रेडेड प्राथमिकता कतार
- एक्सएमएल प्रसंस्करण
- एक्सएमएल क्या है?
- एक्सएमएल पार्सर आर्किटेक्चर और एपीआई
- SAX API के साथ XML को पार्स करना
- मेक_पार्सर विधि
- पार्स विधि
- पार्सस्ट्रिंग विधि
- जीयूआई प्रोग्रामिंग
- टिंकर विजेट्स
- ज्यामिति प्रबंधन
- अनुशंसित लेख
सीजीआई प्रोग्रामिंग
सीजीआई या कॉमन गेटवे इंटरफेस मानकों का एक सेट है जो परिभाषित करता है कि कस्टम स्क्रिप्ट और वेब सर्वर के बीच सूचनाओं का आदान-प्रदान कैसे किया जाता है। एनसीएसए वर्तमान में सीजीआई विनिर्देशों को बनाए रखता है।
वेब ब्राउज़िंग
यदि आप सीजीआई की अवधारणा को समझना चाहते हैं, तो यहां एक उदाहरण है। किसी विशेष URL या वेबपेज को ब्राउज़ करने के लिए हाइपरलिंक पर क्लिक करें।
- ब्राउज़र वेब सर्वर से संपर्क करता है, और यह यूआरएल की मांग करता है।
- वेब सर्वर URL को पार्स करता है, और यह फ़ाइल नाम की तलाश करता है। यदि उसे फ़ाइल मिल जाती है तो वह उसे वापस ब्राउज़र में भेज देता है, अन्यथा, यह एक त्रुटि संदेश भेजता है जो इंगित करता है कि आपने एक गलत फ़ाइल का अनुरोध किया है।
- वेब ब्राउज़र वेब सर्वर से प्रतिक्रिया लेता है और प्राप्त फ़ाइल या त्रुटि संदेश प्रदर्शित करता है।
यद्यपि HTTP सर्वर को सेट करना संभव है ताकि जब भी किसी विशिष्ट निर्देशिका में फ़ाइल का अनुरोध किया जाता है तो फ़ाइल वापस नहीं भेजी जाती है; इसके बजाय इसे एक प्रोग्राम के रूप में निष्पादित किया जाता है, और जो भी प्रोग्राम आउटपुट करता है वह आपके ब्राउज़र को प्रदर्शित करने के लिए वापस भेज दिया जाता है।
इस फ़ंक्शन को कॉमन गेटवे इंटरफ़ेस या CGI के रूप में जाना जाता है, और योजनाओं को CGI स्क्रिप्ट के रूप में जाना जाता है। CGI प्रोग्राम एक Python Script, PERL Script, Shell Script, C या C++ Program, आदि हो सकते हैं।

HTTP हैडर
रेखा सामग्री-प्रकार: टेक्स्ट/एचटीएमएल HTTP शीर्षलेख का हिस्सा है जो सामग्री को समझने के लिए ब्राउज़र को भेजा जाता है। सभी HTTP शीर्षलेख निम्न रूप में होंगे
हां नहीं | हैडर | विवरण |
एक | स्थान: यूआरएल | अनुरोधित URL के बजाय लौटाया गया URL। आप किसी भी फ़ाइल के अनुरोध को पुनर्निर्देशित करने के लिए फ़ील्ड का उपयोग कर सकते हैं। |
दो | सामग्री प्रकार: | यह एक MIME स्ट्रिंग है जो लौटाई गई फ़ाइल के प्रारूप को परिभाषित करती है। उदाहरण के लिए सामग्री-प्रकार है: टेक्स्ट/एचटीएमएल |
3 | अंतिम-संशोधित: दिनांक | संसाधन के संशोधन की तिथि। |
4 | समाप्त: दिनांक | सूचना तिथि पर अमान्य हो जाती है। एक ब्राउज़र इसका उपयोग यह तय करने के लिए करता है कि किसी पृष्ठ को कब ताज़ा करने की आवश्यकता है। |
5 | सेट-कुकी: स्ट्रिंग | कुकी के माध्यम से पारित सेट करें डोरी |
6 | सामग्री-लंबाई: नहीं | डेटा की लंबाई लौटाई जा रही है। फ़ाइल के अनुमानित डाउनलोड समय की रिपोर्ट करने के लिए ब्राउज़र मान का उपयोग करता है। |
सीजीआई पर्यावरण चर
CGI कार्यक्रमों की पहुँच कुछ पर्यावरण चरों तक होती है। किसी भी CGI प्रोग्राम को लिखते समय ये चर एक आवश्यक भूमिका निभाते हैं।
हां नहीं | चर का नाम | विवरण |
एक | कंटेंट की लम्बाई | क्वेरी जानकारी की लंबाई। यह केवल POST अनुरोधों के लिए उपलब्ध है। |
दो | सामग्री प्रकार | सामग्री का डेटा प्रकार। इसका उपयोग तब किया जाता है जब क्लाइंट सर्वर पर सामग्री भेज रहा हो। उदाहरण के लिए, फ़ाइल अपलोड। |
3 | क्वेरी स्ट्रिंग | URL-एन्कोडेड जानकारी GET विधि अनुरोध के साथ भेजी जाती है। |
4 | PATH_INFO | यह सीजीआई लिपि का मार्ग है। |
5 | HTTP_कुकी | यह सेट कुकीज़ को वैल्यू पेयर और की के रूप में लौटाता है। |
6 | रिमोट होस्ट | अनुरोध करने वाले मेज़बान का पूरी तरह से योग्य नाम। यदि जानकारी उपलब्ध नहीं है, तो IR पता प्राप्त करने के लिए REMOTE_ADDR का उपयोग किया जा सकता है। किसी फ़ाइल के लिए अनुमानित डाउनलोड समय की रिपोर्ट करने का मान. |
7 | SCRIPT_FILENAME | सीजीआई लिपि का पूरा पथ। |
8 | REQUEST_METHOD | अनुरोध करने के लिए विधि का उपयोग किया जाता है। सबसे आम तरीके POST और GET हैं। |
9 | सर्वर का नाम | सर्वर का होस्टनाम या आईपी पता |
10 | सर्वर_सॉफ़्टवेयर | सॉफ़्टवेयर का संस्करण और नाम जहां सर्वर चल रहा है। |
ग्यारह | HTTP_USER_AGENT | उपयोगकर्ता-एजेंट अनुरोध-शीर्षलेख में उस उपयोगकर्ता एजेंट के बारे में जानकारी होती है जो अनुरोध उत्पन्न करता है। यह वेब ब्राउज़र का नाम है। |
12 | REMOTE_ADDR | दूरस्थ होस्ट का IP पता अनुरोध करता है। यह लॉगिंग या प्रमाणीकरण के लिए उपयोगी है। |
13 | स्क्रिप्ट | सीजीआई लिपि का नाम। |
विधि प्राप्त करें
जीईटी विधि ब्राउज़र से वेब सर्वर तक जानकारी पास करने के लिए एक डिफ़ॉल्ट विधि है, और यह एक स्ट्रिंग उत्पन्न करती है जो आपके ब्राउज़र के स्थान पर दिखाई देती है: बॉक्स। यदि आपके पास पासवर्ड या अन्य संवेदनशील जानकारी है तो आपको कभी भी GET पद्धति का उपयोग नहीं करना चाहिए। जीईटी विधि की आकार सीमा है: अनुरोध स्ट्रिंग में केवल 1024 वर्ण भेजे जा सकते हैं। GET विधि QUERY_STRING शीर्षलेख का उपयोग करके जानकारी भेजती है और QUERY_STRING पर्यावरण चर के माध्यम से आपके CGI कार्यक्रम में पहुंच योग्य होगी।
वाक्य - विन्यास
|_+_|
आउटपुट

पोस्ट विधि
POST एक अनुरोध विधि है जो वर्ल्ड वाइड वेब द्वारा उपयोग किए जाने वाले HTTP द्वारा समर्थित है। POST विधि अनुरोध करती है कि वेब सर्वर अनुरोध संदेश के मुख्य भाग में संलग्न डेटा को स्वीकार करता है। इसका उपयोग फ़ाइल अपलोड करते समय या पूर्ण वेब फ़ॉर्म सबमिट करते समय किया जाता है।
वाक्य - विन्यास
|_+_|
CGI में कुकीज़ का उपयोग करना
HTTP प्रोटोकॉल स्टेटलेस है। एक व्यावसायिक वेबसाइट के लिए, आपको विभिन्न पृष्ठों के बीच सत्र की जानकारी बनाए रखनी होगी।
कुछ स्थितियों में, बेहतर विज़िटर अनुभव या साइट के आँकड़ों के लिए कुकीज़ का उपयोग करना वरीयताओं, कमीशन, खरीद और अन्य जानकारी को ट्रैक करने और याद रखने का सबसे कुशल तरीका है।
यह कैसे काम करता है?
सर्वर ब्राउज़र को कुछ डेटा कुकी के रूप में भेजता है। ब्राउज़र कुकी को स्वीकार कर सकता है। यदि इसे स्वीकार किया जाता है, तो इसे हार्ड ड्राइव पर सीधे टेक्स्ट रिकॉर्ड के रूप में संग्रहीत किया जाता है। अब, जब कोई आगंतुक दूसरे पृष्ठ पर आता है, तो कुकी पुनर्प्राप्ति के लिए उपलब्ध होती है। एक बार इसे पुनर्प्राप्त करने के बाद, आपका सर्वर याद रखता है कि क्या संग्रहीत किया गया था।
MySQL डाटाबेस एक्सेस
MySQLdb Python से MySQL डेटाबेस सर्वर से कनेक्ट करने के लिए एक इंटरफ़ेस है। यह लागू करता है अजगर डेटाबेस एपीआई v2.0 और MySQL C API के शीर्ष पर बनाया गया है।
डेटाबेस तालिका बनाना
एक बार डेटाबेस कनेक्शन बन जाने के बाद, आप बनाए गए कर्सर की निष्पादन विधि का उपयोग करके डेटाबेस टेबल में टेबल या रिकॉर्ड बनाने के लिए तैयार हैं।

INSERT ऑपरेशन
जब आप डेटाबेस तालिका में अपने रिकॉर्ड बनाना चाहते हैं तो सम्मिलित करें ऑपरेशन आवश्यक है।

ऑपरेशन पढ़ें
किसी भी डेटाबेस में रीड ऑपरेशन का अर्थ है डेटाबेस से कुछ जानकारी प्राप्त करना।
एक बार डेटाबेस कनेक्शन हो जाने के बाद, आप इस डेटाबेस में एक क्वेरी बनाने के लिए तैयार हैं। आप का उपयोग कर सकते हैं भ्रूण () एकल रिकॉर्ड लाने की विधि या फ़ेचॉल () डेटाबेस तालिका से कई मान प्राप्त करने की विधि।
अद्यतन संचालन
किसी भी डेटाबेस में UPDATE ऑपरेशन का मतलब उन रिकॉर्ड्स को अपडेट करना है, जो डेटाबेस में उपलब्ध हैं।

ऑपरेशन हटाएं
DELETE ऑपरेशन आपके डेटाबेस से कुछ रिकॉर्ड हटा देता है।

लेन-देन करना
लेन-देन वह तंत्र है जो डेटा स्थिरता सुनिश्चित करता है।
कमिट ऑपरेशन
कमिट एक ऐसा ऑपरेशन है जो परिवर्तनों को अंतिम रूप देने के लिए डेटाबेस को हरी झंडी देता है, और इस ऑपरेशन के बाद, कोई भी परिवर्तन वापस नहीं किया जा सकता है।
उदाहरण के लिए db.commit ()
रोलबैक ऑपरेशन
यदि आप एक या अधिक परिवर्तन नहीं चाहते हैं और आप उन परिवर्तनों को पूरी तरह से वापस करना चाहते हैं, तो आपको रोलबैक का उपयोग करना चाहिए () तरीका।
उदाहरण के लिए db.rollback()
डेटाबेस को डिस्कनेक्ट करना
डेटाबेस कनेक्शन को डिस्कनेक्ट करने के लिए, आपको क्लोज़ () विधि का उपयोग करना चाहिए।
यदि किसी डेटाबेस से कनेक्शन बंद हो जाता है तो किसी भी बकाया लेनदेन को डीबी द्वारा वापस ले लिया जाता है। हालांकि, किसी भी डीबी निचले स्तर के कार्यान्वयन विवरण के आधार पर आवेदन स्पष्ट रूप से प्रतिबद्ध या रोलबैक को कॉल करने के लिए बेहतर होगा।
हैंडलिंग त्रुटियां
त्रुटियों के कई कारण हैं। एक कनेक्शन विफलता, एक निष्पादित SQL कथन में सिंटैक्स त्रुटि, कुछ उदाहरण हैं
डीबी एपीआई प्रत्येक डेटाबेस मॉड्यूल में मौजूद त्रुटियों की संख्या को परिभाषित करता है। निम्न तालिका अपवादों को सूचीबद्ध करती है।
हां नहीं | अपवाद | विवरण |
एक | त्रुटि | यह त्रुटियों के लिए आधार वर्ग है। इसे त्रुटि उपवर्ग करना चाहिए। |
दो | इंटरफ़ेस त्रुटि | इसका उपयोग डेटाबेस मॉड्यूल में त्रुटियों के लिए किया जाता है, न कि डेटाबेस में। इसे त्रुटि को उपवर्ग करना चाहिए। |
3 | चेतावनी | इसका उपयोग गैर-घातक मुद्दों के लिए किया जाता है। इसे StandardError उपवर्ग करना चाहिए। |
4 | डाटा त्रुटि | यह DatabaseError का उपवर्ग है जो डेटा में त्रुटियों को संदर्भित करता है। |
5 | डाटाबेस त्रुटि | इसका उपयोग डेटाबेस में त्रुटि के लिए किया जाता है। यह त्रुटि उपवर्ग करना चाहिए |
6 | परिचालन त्रुटि | डेटाबेस एरर का उपवर्ग त्रुटियों को संदर्भित करता है जैसे कि डेटाबेस से कनेक्शन का नुकसान। त्रुटियां पायथन लिपिक के नियंत्रण से बाहर हैं। |
7 | आंतरिक गलती | DatabaseError का उपवर्ग डेटाबेस मॉड्यूल में आंतरिक त्रुटियों को संदर्भित करता है, जैसे कोई कर्सर अब सक्रिय नहीं है। |
8 | समर्थित नहींत्रुटि | DatabaseError का उपवर्ग असमर्थित कार्यक्षमता को कॉल करने का प्रयास करने को संदर्भित करता है। |
9 | वफ़ादारी त्रुटि | डेटाबेस एरर का उपवर्ग उन स्थितियों के लिए है जो संबंधपरक अखंडता को नुकसान पहुंचाती हैं, जैसे कि विशिष्टता की कमी या विदेशी कुंजी। |
10 | प्रोग्रामिंग त्रुटि | DatabaseError का उपवर्ग खराब तालिका नाम जैसी त्रुटियों को संदर्भित करता है। |