[python] पाइथन वेब ढांचे, डब्ल्यूएसजीआई और सीजीआई एक साथ फिट कैसे हैं



Answers

मुझे लगता है कि फ्लोरियन का जवाब "डब्लूएसजीआई क्या है" के बारे में आपके प्रश्न के हिस्से का जवाब देता है, खासकर अगर आप पीईपी पढ़ते हैं।

प्रश्नों के लिए आप अंत की ओर रुख करते हैं:

डब्लूएसजीआई, सीजीआई, फास्टसीजीआई इत्यादि कोड चलाने के लिए वेब सर्वर के लिए सभी प्रोटोकॉल हैं, और उत्पादित गतिशील सामग्री प्रदान करते हैं। इसकी तुलना स्थिर वेब सेवा से करें, जहां एक सादा HTML फ़ाइल मूल रूप से क्लाइंट के रूप में वितरित की जाती है।

सीजीआई, फास्टसीजीआई और एससीजीआई भाषा अज्ञेयवादी हैं। आप पर्ल, पायथन, सी, बैश, जो भी हो, में सीजीआई स्क्रिप्ट लिख सकते हैं। सीजीआई परिभाषित करता है कि यूआरएल के आधार पर कौन सा निष्पादन योग्य कहा जाएगा, और इसे कैसे कहा जाएगा: तर्क और पर्यावरण। यह भी परिभाषित करता है कि आपके निष्पादन योग्य होने के बाद वापसी मूल्य को वेब सर्वर पर वापस कैसे भेजा जाना चाहिए। विविधताएं अधिक अनुरोधों को संभालने, विलंबता को कम करने और इतने पर सक्षम होने के लिए मूल रूप से अनुकूलन हैं; मूल अवधारणा वही है।

डब्लूएसजीआई केवल पायथन है। एक भाषा अज्ञेय प्रोटोकॉल की बजाय, मानक फ़ंक्शन हस्ताक्षर परिभाषित किया गया है:

def simple_app(environ, start_response):
    """Simplest possible application object"""
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return ['Hello world!\n']

यह एक पूर्ण (यदि सीमित) डब्लूएसजीआई आवेदन है। WSGI समर्थन वाला एक वेब सर्वर (जैसे mod_wsgi के साथ अपाचे) जब भी कोई अनुरोध आता है तो इस फ़ंक्शन को आवेदक कर सकता है।

इसका कारण यह इतना बड़ा है कि हम एक HTTP जीईटी / पोस्ट से सीजीआई से पायथन तक परिवर्तित करने के गंदे कदम से बच सकते हैं, और फिर से बाहर निकल सकते हैं। यह एक बहुत अधिक प्रत्यक्ष, स्वच्छ और कुशल जुड़ाव है।

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

डब्लूएसजीआई समर्थन के लिए, आपको एक mod_wsgi मॉड्यूल (जैसे mod_wsgi ) स्थापित करना होगा, या mod_wsgi साथ एक वेब सर्वर का उपयोग करना होगा (जैसे CherryPy )। यदि इनमें से कोई भी संभव नहीं है, तो आप पीईपी में दिए गए सीजीआई-डब्ल्यूएसजीआई पुल का उपयोग कर सकते हैं।

Question

मेरे पास Bluehost खाता है जहां मैं सीजीआई के रूप में पाइथन स्क्रिप्ट चला सकता हूं। मुझे लगता है कि यह सबसे आसान CGI है, क्योंकि चलाने के लिए मुझे निम्नलिखित में परिभाषित करना होगा .htaccess :

Options +ExecCGI
AddType text/html py
AddHandler cgi-script .py

अब, जब भी मैं पाइथन के साथ वेब प्रोग्रामिंग देखता हूं, मैं डब्लूएसजीआई के बारे में बहुत कुछ सुनता हूं और अधिकांश ढांचे इसका उपयोग कैसे करते हैं। लेकिन मुझे समझ में नहीं आता कि यह सब कैसे एक साथ फिट बैठता है, खासकर जब मेरा वेब सर्वर दिया जाता है (अपाचे एक मेजबान की मशीन पर चल रहा है) और कुछ ऐसा नहीं जो मैं वास्तव में खेल सकता हूं ( .htaccess आदेशों को परिभाषित करने के अलावा)।

WSGI , सीजीआई, और सभी ढांचे के ढांचे कैसे हैं? अगर मैं अपने मूल सीजीआई कॉन्फ़िगरेशन पर वेब फ्रेमवर्क (वेब. CherryPy या CherryPy कहता CherryPy ) चलाने के लिए मुझे क्या जानना, इंस्टॉल करना और करना है? WSGI समर्थन कैसे स्थापित करें?




यदि आप इस जगह की सभी शर्तों पर अस्पष्ट हैं, और इसका सामना करते हैं, तो यह एक भ्रमित परिवर्णी-लड़ाकू व्यक्ति है, एक आधिकारिक पायथन हाउटो के रूप में एक अच्छा पृष्ठभूमि पाठक भी है जो सीजीआई बनाम फास्टसीजीआई बनाम डब्लूएसजीआई पर चर्चा करता है और इसलिए चालू: http://docs.python.org/howto/webservers.html




Links