हर बार जब मैं रूबी या पायथन को वेब विकास के संदर्भ में चर्चा करता हूं, तो यह हमेशा एक ढांचे (रूबी के लिए रेल, पाइथन के लिए Django) के साथ होता है। क्या ये ढांचे आवश्यक हैं? यदि नहीं, तो क्या कोई कारण है कि इन भाषाओं का अक्सर ढांचे के भीतर उपयोग किया जाता है, जबकि पर्ल और PHP नहीं हैं?क्या आपको वेब के लिए रुबी या पायथन कोड लिखने के लिए एक ढांचे की आवश्यकता है?
उत्तर
संक्षिप्त उत्तर नहीं है, वे आवश्यक नहीं हैं। रूबी में आपके पास .erb टेम्पलेट्स हैं जिनका उपयोग PHP पृष्ठों का उपयोग करने के समान ही किया जा सकता है। आप रूबी या पायथन में कई तकनीकों (रेल-जैसी ढांचे, टेम्पलेट्स या यहां तक कि सीधे HTTP लाइब्रेरी के साथ बात करने और पेज सीजीआई-शैली का निर्माण) का उपयोग करके साइट लिख सकते हैं।
पाइथन के डीजेगो या रूबी के रेल जैसे वेब ढांचे (कई हैं) केवल PHP या एएसपी से अमूर्तता का स्तर बढ़ाते हैं, और कई प्रक्रियाओं (जैसे लॉगिन, डेटाबेस इंटरैक्शन, आरईएसटी एपीआई) स्वचालित करते हैं जो हमेशा एक अच्छी बात है।
मैं केवल रुबी की ओर बात कर सकता हूं - लेकिन, नहीं, आपको वेब पर रूबी आधारित पृष्ठों को चलाने के लिए एक ढांचे की आवश्यकता नहीं है। आपको एक रूबी सक्षम सर्वर की आवश्यकता है, जैसे अपाचे चलाना eruby/erb। लेकिन, एक बार ऐसा करने के बाद, आप RoR की तरह .rhtml फ़ाइलों को बना सकते हैं, जहां यह इनलाइन रूबी कोड को संसाधित करता है।
"आवश्यकता" एक मजबूत शब्द है। आप निश्चित रूप से बिना किसी पाइथन लिख सकते हैं, लेकिन मैं नहीं चाहूंगा।
पायथन को प्रत्यक्ष वेब स्क्रिप्टिंग भाषा के रूप में डिज़ाइन नहीं किया गया था (जैसे PHP, उदाहरण के लिए), इसलिए डेटाबेस से कनेक्ट करने जैसी सामान्य वेब-आईश चीजें मूल नहीं हैं, और ढांचे आसान हैं।
संपादित करें: mod_python अपाचे के लिए मौजूद है, इसलिए यदि आप केवल कुछ स्क्रिप्ट लिखना चाहते हैं, तो पायथन को ढांचे की आवश्यकता नहीं है। यदि आप एक संपूर्ण साइट बनाना चाहते हैं, तो मैं एक का उपयोग करने की अनुशंसा करता हूं।
किसी भी तरह से उन विकास ढांचे की आवश्यकता नहीं है। लेकिन अधिकांश विकास वातावरण के साथ, आपकी उत्पादकता तेजी से बढ़ेगी यदि आपके पास संदर्भ के लिए एक समर्थित ढांचा है और आपके अनुप्रयोगों का निर्माण करना है। यह आपके अनुप्रयोगों पर दूसरों को गति देने के लिए आवश्यक प्रशिक्षण भी कम करता है यदि उनके पास पहले से ही आपके द्वारा उपयोग किए जाने वाले ढांचे की मूल समझ है।
कोई भी भाषा जो "प्रिंट" कर सकती है, वेब पृष्ठों को उत्पन्न करने के लिए उपयोग की जा सकती है, लेकिन ढांचे आपके लिए बहुत सी HTML पीढ़ी को संभालते हैं। वे कच्चे HTML को कोडिंग के विवरण पर सामग्री पर और अधिक ध्यान केंद्रित करने देते हैं।
पायथन के लिए, उत्तर नहीं है आपको नहीं करना है। आप अपने वेब सर्वर के पीछे सीधे पाइथन लिख सकते हैं, इसे कैसे करें इसके लिए mod_python पर एक नज़र डालें।
ढांचे जैसे बहुत से लोग क्योंकि वे बॉयलरप्लेट कोड को विश्वसनीय रूप में बहुत अधिक आपूर्ति करते हैं, इसलिए आपको इसे स्वयं लिखना नहीं है। लेकिन, किसी भी कोड प्रोजेक्ट की तरह, आपको अपनी समस्या के लिए अपनी योग्यता पर टूल और ढांचे का चयन करना चाहिए।
आप निश्चित रूप से किसी भी भाषा में सीजीआई स्क्रिप्ट लिख सकते हैं और चीजें "कच्चे" कर सकते हैं।
ढांचे (आदर्श) उन चीज़ों के लिए कोड का ढेर लिखने की परेशानी को बचाते हैं जो अन्य लोगों ने पहले से ही संभाला है (सत्र हैंडलिंग इत्यादि)।
निर्णय शायद आपको जो करना है, उसके नीचे आता है। यदि ढांचे में आपको आवश्यक सुविधाएं हैं, तो इसका उपयोग क्यों न करें। यदि ढांचे में व्यापक संशोधन की आवश्यकता होगी, तो अपनी खुद की सामग्री को रोल करना आसान हो सकता है। या एक अलग ढांचे की जांच करें।
अजगर पुस्तकालय cgi करने के लिए कई मॉड्यूल, पार्स करने एचटीएमएल, कुकीज़, WSGI, आदि है:
के रूप में क्यों:
सबसे प्रशंसनीय बात मुझे लगता है कि कर सकते हैं यह है कि वेब ऐप्स के लिए ढांचे का उपयोग करने की धारणा से पहले पर्ल और PHP विकसित किए गए थे। इसलिए, चीजों को करने का "पुराना" तरीका उन संस्कृतियों में फंस गया है।फ्रेमवर्क लोकप्रिय होने के बाद रुबी और पायथन लोकप्रिय हो गए, इसलिए वे एक साथ विकसित हुए। यदि आपकी भाषा में एक अच्छा ढांचा (या एक से अधिक) है जो समुदाय द्वारा समर्थित है, तो बिना किसी वेब ऐप को लिखने का प्रयास करने का कोई कारण नहीं है।
ढांचे आवश्यक नहीं हैं। हालांकि, बहुत से डेवलपर्स सोचते हैं कि ढांचे कई चीजों को स्वचालित करके विकास को आसान बनाते हैं। उदाहरण के लिए, Django आपके डेटाबेस संरचना के आधार पर आपके लिए एक उत्पादन-तैयार बैकएंड तैयार करेगा। यदि आप चुनते हैं तो यह आपको विभिन्न प्लगइन को शामिल करने देता है। मुझे रेल या पर्ल ढांचे के बारे में बहुत कुछ पता नहीं है, लेकिन जेनेंड, सिम्फनी, कोड इग्निटर, केकेपीएचपी आदि जैसे PHP ढांचे का व्यापक रूप से उपयोग किया जाता है।
जहां मैं काम करता हूं हम अपने स्वयं के PHP ढांचे को घुमाते हैं।
फ्रेमवर्क? बिल्ली, यदि आप पाइथन का उपयोग कर रहे हैं, तो आपको वेब सर्वर की भी आवश्यकता नहीं है, आप कोड की लगभग तीन पंक्तियों में से एक बना सकते हैं।
PHP में बहुत सारे ढांचे हैं। शायद सबसे अधिक तो। रूबी में ज्यादातर रेल का उपयोग करते हैं, जो आप सुनते हैं, और पाइथन के लिए डैंजो का उल्लेख नहीं किया जाता है। लेकिन PHP के साथ आपके पास से कई चुनने हैं।
देखने के एक pythonic बिंदु से, आप बिल्कुल ढाँचे में से एक का उपयोग करना चाहते चाहते हैं। हां, उनके बिना एक वेब ऐप लिखना संभव हो सकता है, लेकिन यह सुंदर नहीं होगा।
Templating: यहाँ कुछ चीजें आप करेंगे (शायद) ऊपर खरोंच से लिख अंत है जब तक आप एक बहुत बहुत जल्दी हैक लिख रहे हैं, आप के भीतर अपने HTML के सभी पैदा किया जा नहीं करना चाहते हैं अपने पायथन कोड - यह वास्तव में एक खराब डिजाइन है जो एक रखरखाव दुःस्वप्न बन जाता है।
यूआरएल प्रोसेसिंग: एक यूआरएल विभाजित करना और कौन सा कोड चलाने के लिए पहचानना एक छोटा काम नहीं है। Django (उदाहरण के लिए) नियमित अभिव्यक्तियों के एक सेट से देखने के कार्यों के एक सेट से मानचित्र करने के लिए एक शानदार तंत्र प्रदान करता है।
प्रमाणीकरण: अपने खुद के प्रवेश/लॉगआउट/सत्र प्रबंधन कोड रोलिंग, एक दर्द है, खासकर जब वहाँ पहले से ही पूर्व लिखित (और परीक्षण) कोड उपलब्ध है
त्रुटि निवारण: व्यवस्थाएं पहले से ही जगह में एक अच्छा तंत्र है ए) आपको अपने ऐप को डीबग करने में मदद करता है, और बी) उचित 404 और 500 पृष्ठों पर रीडायरेक्ट करने में सहायता करें।
इसमें जोड़ने के लिए, सभी ढांचे पुस्तकालयों का सभी परीक्षण किया जाता है (और अग्नि परीक्षण)। इसके अतिरिक्त, ऐसे लोग हैं जो समान कोड आधार का उपयोग कर विकास कर रहे हैं, इसलिए यदि आपके कोई प्रश्न हैं, तो आप शायद सहायता पा सकते हैं।
संक्षेप में, आपको यह करने की ज़रूरत नहीं है, लेकिन जब तक कि आपकी परियोजना "एक नया वेब ढांचा" न हो, तो आप संभवतः मौजूदा लोगों में से किसी एक का उपयोग करना बंद कर सकते हैं।
आप अलग-अलग, असंबंधित लाइब्रेरी मॉड्यूल का उपयोग करके उन सभी कार्यों को निश्चित रूप से कर सकते हैं; आपको बहुत कुछ नियंत्रित करने के लिए जरूरी नहीं है कि एक ओवर-आर्किंग फ्रेमवर्क का उपयोग करें। निचले स्तर के डब्लूएसजीआई मानक हमें इन घटकों को एक साथ चिपकाने के लिए पर्याप्त देता है। – bobince
क्या ये ढांचे आवश्यक हैं?
नहीं। वे किसी भी 'ढांचे' की तरह, विकास के समय को तेज करने और प्रोग्रामर की नौकरी को आसान बनाने के लिए बस हैं।
यदि नहीं, तो क्या कोई कारण है कि इन भाषाओं का अक्सर ढांचे के भीतर उपयोग किया जाता है, जबकि पर्ल और PHP नहीं हैं?
फ्रेमवर्क का उपयोग करने के विचार से पहले वेब साइट बनाने के लिए PHP और पर्ल लोकप्रिय भाषाएं थीं। रेल की तरह ढांचे को रूबी ने निम्नलिखित दिया है। मुझे यकीन नहीं है कि पाइथन या रूबी फ्रेमवर्क द्वारा समर्थित किए जाने से पहले वेब भाषाओं के रूप में आम थे।
इन दिनों, यहां तक कि PHP/पर्ल वेब विकास को ढांचे द्वारा समर्थित किया जाना चाहिए (जिनमें से अब कई हैं)।
- 1. वेब-ऐप्स: ढांचे के लिए या ढांचे के लिए नहीं?
- 2. एक पायथन प्रमाणीकरण/प्राधिकरण ढांचे की आवश्यकता है
- 3. आपको HTML.Action के लिए परिभाषित रूट की आवश्यकता क्यों है?
- 4. सीएमएस या ढांचे के लिए एक अच्छा बेरबोन क्या है?
- 5. रूबी ढांचे में एक एपीआई लिखने के लिए?
- 6. क्या कोड लिखने के लिए कोड लिखना संभव है?
- 7. एसक्यूएल: क्या आपको कई-कई तालिकाओं के लिए एक ऑटो-वृद्धिशील प्राथमिक कुंजी की आवश्यकता है?
- 8. हमें ढांचे के ढांचे की आवश्यकता क्यों है?
- 9. PHP वेब सेवा लिखने के लिए फ्रेमवर्क
- 10. क्या आपको एक विशिष्ट गिट संशोधन देखने के लिए शाखा बनाने की आवश्यकता है?
- 11. क्या स्टोरीबोर्ड आपको बदसूरत कोड लिखने के लिए मजबूर कर रहे हैं?
- 12. रुबी या पायथन वेब साइट्स को एकाधिक कोर का उपयोग करने के लिए कैसे करें?
- 13. पायथन लिखने के लिए stdout और fileinput
- 14. फेसबुक - क्या आपको FB.ui (stream.publish) को कॉल करने के लिए फेसबुक एप्लिकेशन/एपिड की आवश्यकता है?
- 15. LIbre Office Calc में मैक्रोज़ लिखने के लिए मुझे किस भाषा की आवश्यकता है?
- 16. आपको कभी-कभी 'टी' के बजाय 'टाइपनाम टी' लिखने की आवश्यकता क्यों होती है?
- 17. मुझे अपने unittests के लिए एक नकली ढांचे की आवश्यकता क्यों है?
- 18. क्या आपको ढांचे में जाने से पहले ओओपी में अच्छी पृष्ठभूमि की आवश्यकता है?
- 19. पायथन वेब ढांचे बनाम जावा वेब ढांचे (पाइथन में वेब विकास कैसे किया जाता है?)
- 20. बटन प्रेस के लिए जावास्क्रिप्ट कोड की आवश्यकता है और
- 21. क्विन लिखने के लिए "चाल" क्या है?
- 22. कागज पर कुशलतापूर्वक कोड लिखने के लिए
- 23. क्या आपको आईफोन ऐप्स विकसित करने के लिए मैक ओएस एक्स की आवश्यकता है?
- 24. स्कैला + वेब ढांचे + जावास्क्रिप्ट ढांचे के अच्छे संयोजन क्या हैं?
- 25. एक लंबी संग्रहीत प्रक्रिया लिखने के लिए
- 26. जावास्क्रिप्ट कोड लिखने के लिए लाइब्रेरी
- 27. Grails ऐप के लिए जांच करने की क्या आवश्यकता है?
- 28. एक मशीन कोड लिखने की वास्तुकला को पता है है?
- 29. पायथन लिखने के लिए बाइट्स लिखें
- 30. फेसबुक ऐप्स विकसित करने के लिए पायथन ढांचे
वाह ... बहुत अच्छे जवाब, केवल "स्वीकार करने" के लिए चुनना मुश्किल था, इसलिए मैंने अभी एक ऐसा चुना जो कि प्रश्न का उत्तर देने के लिए पर्याप्त था और मैंने उल्लेख की गई सभी भाषाओं को हल करने के लिए पर्याप्त सामान्य । सबको धन्यवाद! –