TurboGears
टर्बोगियर्स एक पायथन वेब अनुप्रयोग ढांचा है जिसमें कई डब्ल्यू. एस. जी. आई. घटक जैसे वेबऑब, एस. क्यू. एल. एल. केमी, काजिकी टेम्पलेट भाषा और रीपोज़ शामिल हैं। टर्बोगियर्स को मॉडल-व्यू-कंट्रोलर (एम. वी. सी.) वास्तुकला के आसपास डिज़ाइन किया गया है, जो कि स्ट्रट्स या रूबी ऑन रेल्स की तरह है, जिसे पायथन में तेजी से वेब अनुप्रयोग विकास को आसान और अधिक रखरखाव योग्य बनाने के लिए डिज़ाइन किया गया है। संस्करण 2.3 के बाद से फ्रेमवर्क एक "न्यूनतम मोड" भी प्रदान कर रहा है जो इसे ऐसे वातावरण में उपयोग के लिए एक सूक्ष्म फ्रेमवर्क के रूप में कार्य करने में सक्षम बनाता है जहां पूरे ढेर की आवश्यकता नहीं है और न ही वांछित है। टर्बोगियर्स के घटक टर्बोगियर्स को कई अलग-अलग पुस्तकालयों और मिडलवेयर के शीर्ष पर बनाया गया है। डिफ़ॉल्ट उपकरण 1. x, 2. x और 2.3 + श्रृंखलाओं के बीच बदल गए हैं, लेकिन इनमें से अधिकांश घटकों का उपयोग दोनों में किया जा सकता है क्योंकि कई वैकल्पिक विन्यासों के लिए समर्थन है। निम्नलिखित प्राथमिक घटक हैं जिनके साथ एक डेवलपर बातचीत करेगा। टर्बोगियर्स 2. x घटक एसक्यूएलएएलकेमी (मॉडल)-उपयोगकर्ता के डेटाबेस की तालिका संरचनाओं को परिभाषित करता है और उन्हें पायथन वस्तुओं से कैसे जोड़ना है जिससे उपयोगकर्ता का नियंत्रक बातचीत कर सकता है। मिंग (मॉडल)-मोंगोडीबी के लिए डेटा एक्सेस परत प्रदान करता है, बहुत कुछ एसक्यूएलएएलकेमी की तरह परिभाषित करता है कि मोंगोडीबी संग्रह को पायथन वस्तुओं से कैसे जोड़ा जाए जिससे उपयोगकर्ता का नियंत्रक बातचीत कर सके। काजिकी (पहले जेनशी) (देखें)-एच. टी. एम. एल. या एक्स. एच. टी. एम. एल. के लिए टेम्पलेट को परिभाषित करता है जिसे उपयोगकर्ता उत्पन्न करेगा। यह वह जगह है जहाँ उपयोगकर्ता उस फ्रंट-एंड को परिभाषित करता है जिसके साथ ग्राहक बातचीत करेगा। रीपोज़-Repoze.who का उपयोग सुरक्षा (पहचान और प्रमाणीकरण) को संभालने के लिए किया जाता है। उपयोगकर्ता नियंत्रकों से जुड़े विधेयकों के आधार पर प्राधिकरण नियमों को परिभाषित कर सकते हैं, ढांचा पहले से ही कुछ अंतर्निहित विधेय प्रदान करता है, लेकिन कस्टम नियमों को लिखा जा सकता है। ToscaWidgets-फॉर्म और जटिल GUI बनाने के लिए प्राथमिक विजेट लाइब्रेरी है। टोस्का डिफ़ॉल्ट रूप से सरल एच. टी. एम. एल. रूप उत्पन्न करेगा, लेकिन इसका उपयोग अधिक उन्नत जावास्क्रिप्ट विजेट और टूलकिट से जुड़ने के लिए एक मिडलवेयर के रूप में भी किया जा सकता है। टर्बोगियर्स 1. x के विपरीत, अब कोई पसंदीदा/एकीकृत जावास्क्रिप्ट पुस्तकालय नहीं है। गियरबॉक्स-वह टूलकिट है जिसका उपयोग टर्बोगियर्स द्वारा परियोजनाओं का प्रबंधन करने, नए बनाने और टर्बोगियर्स अनुप्रयोगों की सेवा करने के लिए किया जाता है, लेकिन उपयोगकर्ता अपाचे, एनजीएनएक्स या किसी अन्य डब्ल्यूएसजीआई-संगत वेब सर्वर से भी जुड़ सकता है। 2. 3 से पहले के संस्करण भी उपयोग करेंगेः पाइलोन्स (नियंत्रक)-यह मिडलवेयर उपयोगकर्ता के सभी बैक-एंड लॉजिक को संभालता है और वेब पर डेटा प्रदान करने के लिए उपयोगकर्ता के वेब सर्वर से जुड़ता है। पास्टर गियरबॉक्स के स्थान पर उपयोग किया जाने वाला कमांड टूलकिट और वेब सर्वर था। Repoze.what-क्रमशः प्राधिकरण को संभालने के लिए उपयोग किया जाता है। वेब के संपर्क में आने के लिए उपयोगकर्ता के नियंत्रक के तत्वों को परिभाषित करते समय, repoze.what यह निर्धारित करता है कि कौन उन तक पहुँच सकता है और किन शर्तों के तहत। टर्बोगियर्स 1. x घटक एसक्यूएलओबीजेक्ट (मॉडल)-डेटा बैकएंड जो कई डेटाबेस सर्वरों पर मौजूदा डेटा के साथ एक डेटाबेस या इंटरफेस बना सकता है। एस. क्यू. एल. ए. एल्केमी को टर्बोगियर्स> = 1.1 में डिफ़ॉल्ट होने के लिए निर्धारित किया गया है। किड (व्यू)-एक्स. एच. टी. एम. एल. फ्रंटएंड टेम्पलेटिंग इंजन जहां सभी टेम्पलेट वैध एक्स. एच. टी. एम. एल. या एक्स. एम. एल. फाइलें हैं जो आमतौर पर इस तरह से बनाई जाती हैं जो डिजाइन की जांच करने के लिए इन टेम्पलेट्स को सरल एक्स. एच. टी. एम. एल. फाइलों के रूप में खोलने की अनुमति देती हैं। साथ ही एक्सएमएलआईएस तरीके से पायथन के अंशों को एम्बेड करने के लिए सुविधाएँ प्रदान की जाती हैं। जेनशी किड का उत्तराधिकारी है और इसे टर्बोगियर्स> = 1.1 में डिफ़ॉल्ट टेम्पलेटिंग इंजन के रूप में प्रतिस्थापित करेगा। यह किड के लिए लगभग 100% वाक्यविन्यास-संगत है। चेरीपाई (नियंत्रक)-मिडलवेयर जो वेब अनुप्रयोगों को इवेंट हैंडलर लिखकर प्रोग्राम करने की अनुमति देता है जो (टर्बोगियर्स मामले में) टेम्पलेटों को डेटा लौटाता है। जे. एस. ओ. एन. डेटा स्ट्रीम के रूप में एजेक्स फैशन में भी वही डेटा प्राप्त किया जा सकता है। मोचीकिट टर्बो गियर्स 1. x के लिए पसंदीदा, लेकिन वैकल्पिक जावास्क्रिप्ट लाइब्रेरी है। यह जावास्क्रिप्ट में प्रोग्रामिंग को अधिक पाइथोनिक बनाने के लिए डिज़ाइन किया गया है। इसका उपयोग ज्यादातर अजाक्स सुविधाओं और विजेट को लागू करने के लिए किया जाता है क्योंकि यह अतुल्यकालिक तरीके से जे. एस. ओ. एन. डेटा स्ट्रीम प्राप्त करने के लिए एक इंटरफेस प्रदान करता है। टेम्पलेट प्लगइन्स जेनशी के अलावा अन्य भाषाओं का उपयोग उपयोगकर्ता के ऐप की कॉन्फ़िगरेशन फ़ाइल के माध्यम से किया जा सकता है। वर्तमान में 2.1 में समर्थित प्लगइन्स माइघ्टी, जिंजा2, माको, चीता और काजिकी हैं। वर्तमान में बच्चों के समर्थन की योजना नहीं है क्योंकि जेनशी लगभग समान है। यह सूची भविष्य के संस्करणों में बदलती रह सकती है। परियोजना का इतिहास टर्बोगियर्स मूल रूप से 2005 में केविन डांगूर द्वारा अभी तक अप्रकाशित जेस्टी न्यूज उत्पाद के पीछे की रूपरेखा के रूप में बनाया गया था। जब उन्होंने सितंबर 2005 के अंत में इसे एक ओपन सोर्स फ्रेमवर्क के रूप में जारी किया, तो इसे पहले 3 महीनों में 30,000 से अधिक स्क्रीनकास्ट डाउनलोड प्राप्त हुए। जनवरी 2007 में केविन डांगूर परियोजना के नेता के रूप में सेवानिवृत्त हुए और अल्बर्टो वाल्वर्डे ने अपने उत्तराधिकारी के रूप में परियोजना का प्रबंधन किया, लेकिन बाद में अन्य व्यक्तिगत प्रतिबद्धताओं के कारण पद छोड़ दिया। अल्बर्टो अभी भी अपनी टोस्का विजेट्स परियोजना के माध्यम से टर्बोगियर्स समुदाय में शामिल है। टर्बोगियर्स परियोजना अब मार्क रैम (टर्बोगियर्स 2 विकास नेतृत्व के रूप में) और फ्लोरेंट एड (टर्बोगियर्स 1. x रिलीज मैनेजर के रूप में) के नेतृत्व में लगभग आधा दर्जन मुख्य डेवलपर्स के एक समूह द्वारा संयुक्त रूप से प्रबंधित की जाती है। जून 2007 में समुदाय ने पाइलन में उपयोग किए जाने वाले घटकों और प्रोटोकॉल के शीर्ष पर टर्बोगियर्स एपीआई को रखने के लिए प्रयोग शुरू किए और ऐसी अटकलें थीं कि दोनों ढांचे अंततः विलय हो सकते हैं। हालाँकि, आधिकारिक टर्बोगियर्स 2 प्रलेखन में कहा गया है कि दोनों परियोजनाओं की "अलग, लेकिन संगत प्राथमिकताओं" के कारण ऐसा होने की संभावना नहीं है। पाइलोंस निम्न स्तर, विस्तार योग्य डिजाइन पर ध्यान केंद्रित करना चाहते थे, जबकि टर्बोगियर्स एक पूर्ण, उपयोगकर्ता के अनुकूल पैकेज की पेशकश पर केंद्रित था, और इसलिए दोनों एक साथ उसी तरह काम करते हैं जैसे डेबियन और उबंटू अब करते हैं। नई 2. x शाखा का पहला स्थिर विमोचन मई 2009 में हुआ था। फॉल 2008 तक, टर्बोगियर्स के पास टर्बोगियर्स मेलिंग सूची में 3000 से अधिक उपयोगकर्ताओं के साथ एक बड़ा और स्वस्थ समुदाय है, नवंबर '06 में प्रकाशित प्रेंटिस हॉल की एक पुस्तक, और वास्तविक दुनिया में तैनात कई ओपन-सोर्स और मालिकाना टर्बोगियर्स अनुप्रयोग हैं। विकास एक मध्यम लेकिन स्थिर गति से आगे बढ़ता है और 2008 और 2009 में गूगल समर ऑफ कोड मेंटरिंग संगठन के रूप में परियोजना की सफल भागीदारी से भी इसे बढ़ावा मिला। टर्बोगियर्स 1.1, जिसका उद्देश्य विरासत स्थलों को 2. x में परिवर्तन करने में मदद करना है, अक्टूबर 2009 में जारी किया गया था। टर्बोगियर्स 2 द्वारा लाए गए परिवर्तनों के अनुरूप इसे अद्यतन करने के लिए पुस्तक का एक नया संशोधन किया जा रहा है। 2010 में, परियोजना कुछ हद तक लड़खड़ा गई। मुख्य विकासकर्ताओं को वास्तविक जीवन के मुद्दों के कारण दूर बुलाया गया था। हालाँकि, जनवरी, 2011 के अंत तक, परियोजना ने पुनर्गठन करना और पटरी पर लौटने पर काम करना शुरू कर दिया था। कई महीनों तक आधारभूत संरचना प्राप्त करने और कोडिंग मुद्दों के माध्यम से काम करने के बाद, टर्बोगियर्स नए संस्करणों (2.0.4 और 2.1.2) को जारी करने में कामयाब रहा है। 2013 में, पिछड़े संगतता को बनाए रखते हुए, परियोजना पायथन 3 का समर्थन करने के लिए पायलन कोडबेस से दूर चली गई है, जो गति बढ़ाने और एक आसान स्थापना प्रक्रिया प्रदान करती है। इसके कारण अगस्त 2013 में संस्करण 2.3 जारी किया गया। इसे एक तेज रिलीज चक्र की भी घोषणा की गई है जिससे हर ~ 3 महीने में रखरखाव रिलीज होना चाहिए। टर्बोगियर्स का भविष्य टर्बोगियर्स का विकास अब मुख्य रूप से नई 2. x शाखा पर केंद्रित है, जिसमें संस्करण 2.3 अब पायथन 3 समर्थन के साथ मुख्य ट्रैक है। 1. x शाखा से 2. x शाखा में एक संक्रमण पथ 1 और 1 रिलीज के माध्यम से प्रदान किया जाता है जो डिफ़ॉल्ट ओआरएम और टेम्पलेट भाषाओं को 2. x श्रृंखला द्वारा उपयोग की जाने वाली भाषा से मेल खाने के लिए स्थानांतरित करता है। टर्बोगियर्स टीम ने नए उपयोगकर्ताओं को यह स्पष्ट कर दिया कि 2. x भविष्य है, और 1. x को केवल मौजूदा उपयोगकर्ताओं की सुविधा के लिए बनाए रखा गया है। 2011 के दौरान टर्बोगियर्स के प्रमुख डेवलपर्स पिरामिड नामक एक नई एकीकृत परियोजना के रूप में उनके और Repoze.BFG के डेवलपर्स के साथ सेना में शामिल होने के लिए पाइलोन्स परियोजना के साथ बातचीत कर रहे हैं। इस कदम में पिछड़े संगतता के मुद्दों के कारण, और टर्बो गियर्स के लंबे समय तक एक विश्वसनीय मंच बने रहने की गारंटी के कारण, वर्तमान टीम ने हर संभव चीज पर पाइलोन्स परियोजना के साथ सहयोग करने का फैसला किया, लेकिन पिरामिड पर टर्बो गियर्स कोर को आधार नहीं बनाया। 2. 3 शाखा में भविष्य में विकास, पायथन 3 समर्थन और गति में सुधार हुआ है, जिसमें इसे मौजूदा अनुप्रयोगों के साथ पीछे की ओर संगत रखते हुए टर्बोगियर्स कोर का पूर्ण पुनर्लेखन देखा गया है, क्योंकि उस रिलीज टर्बोगियर्स का पायलोंस ढांचे पर आधारित होने के बजाय अपना मूल था। 2. 3 श्रृंखला के दौरान फ्रेमवर्क एक तथाकथित "न्यूनतम मोड" के साथ प्रयोग कर रहा है जो इसे एक सूक्ष्म-फ्रेमवर्क के रूप में कार्य करने में सक्षम बनाता है जो वास्तव में निर्भरता को दसियों से घटाकर केवल 3 कर देता है और अपने उद्देश्यों के लिए अजगर फ्रेमवर्क के गुलाब में फ्लास्क और जांगो के बीच टर्बोगियर्स की स्थिति बनाता है, क्योंकि इसका उद्देश्य केवल इस तथ्य पर निर्भर करता है कि टर्बोगियर्स 2 या tg.devtools पैकेज का उपयोग किया जाता है। संस्करण 2.4 के बाद से ढांचे में अब एक मॉड्यूलर घटक आधारित वास्तुकला है, जो उपयोगकर्ताओं को अपनी इच्छानुसार घटकों को सक्षम और प्रतिस्थापित करने की अनुमति देता है, इस प्रकार टर्बोगियर्स वास्तव में एक वेब ढांचा होने के अपने मिशन का पालन करता है जो उपयोगकर्ताओं की जरूरतों के अनुरूप है। वेब फ्रेमवर्क की जांगो तुलना भी देखें संदर्भ राम, एम; डांगूर, के; सेफान, जी (7 नवंबर, 2006)। टर्बोगियर्स, प्रेन्टिस हॉल के साथ त्वरित वेब अनुप्रयोग। नोट्स बाहरी लिंक टर्बोगियर्स होमपेज पायथन (प्रोग्रामिंग भाषा) सॉफ्टवेयर पायथन (प्रोग्रामिंग भाषा) वेब फ्रेमवर्क सॉफ्टवेयर एम. आई. टी. लाइसेंस का उपयोग करते हुए