2008-10-06 9 views
6

हर बार जब मैं रूबी या पायथन को वेब विकास के संदर्भ में चर्चा करता हूं, तो यह हमेशा एक ढांचे (रूबी के लिए रेल, पाइथन के लिए Django) के साथ होता है। क्या ये ढांचे आवश्यक हैं? यदि नहीं, तो क्या कोई कारण है कि इन भाषाओं का अक्सर ढांचे के भीतर उपयोग किया जाता है, जबकि पर्ल और PHP नहीं हैं?क्या आपको वेब के लिए रुबी या पायथन कोड लिखने के लिए एक ढांचे की आवश्यकता है?

+2

वाह ... बहुत अच्छे जवाब, केवल "स्वीकार करने" के लिए चुनना मुश्किल था, इसलिए मैंने अभी एक ऐसा चुना जो कि प्रश्न का उत्तर देने के लिए पर्याप्त था और मैंने उल्लेख की गई सभी भाषाओं को हल करने के लिए पर्याप्त सामान्य । सबको धन्यवाद! –

उत्तर

3

संक्षिप्त उत्तर नहीं है, वे आवश्यक नहीं हैं। रूबी में आपके पास .erb टेम्पलेट्स हैं जिनका उपयोग PHP पृष्ठों का उपयोग करने के समान ही किया जा सकता है। आप रूबी या पायथन में कई तकनीकों (रेल-जैसी ढांचे, टेम्पलेट्स या यहां तक ​​कि सीधे HTTP लाइब्रेरी के साथ बात करने और पेज सीजीआई-शैली का निर्माण) का उपयोग करके साइट लिख सकते हैं।

पाइथन के डीजेगो या रूबी के रेल जैसे वेब ढांचे (कई हैं) केवल PHP या एएसपी से अमूर्तता का स्तर बढ़ाते हैं, और कई प्रक्रियाओं (जैसे लॉगिन, डेटाबेस इंटरैक्शन, आरईएसटी एपीआई) स्वचालित करते हैं जो हमेशा एक अच्छी बात है।

4

मैं केवल रुबी की ओर बात कर सकता हूं - लेकिन, नहीं, आपको वेब पर रूबी आधारित पृष्ठों को चलाने के लिए एक ढांचे की आवश्यकता नहीं है। आपको एक रूबी सक्षम सर्वर की आवश्यकता है, जैसे अपाचे चलाना eruby/erb। लेकिन, एक बार ऐसा करने के बाद, आप RoR की तरह .rhtml फ़ाइलों को बना सकते हैं, जहां यह इनलाइन रूबी कोड को संसाधित करता है।

3

"आवश्यकता" एक मजबूत शब्द है। आप निश्चित रूप से बिना किसी पाइथन लिख सकते हैं, लेकिन मैं नहीं चाहूंगा।

पायथन को प्रत्यक्ष वेब स्क्रिप्टिंग भाषा के रूप में डिज़ाइन नहीं किया गया था (जैसे PHP, उदाहरण के लिए), इसलिए डेटाबेस से कनेक्ट करने जैसी सामान्य वेब-आईश चीजें मूल नहीं हैं, और ढांचे आसान हैं।

संपादित करें: mod_python अपाचे के लिए मौजूद है, इसलिए यदि आप केवल कुछ स्क्रिप्ट लिखना चाहते हैं, तो पायथन को ढांचे की आवश्यकता नहीं है। यदि आप एक संपूर्ण साइट बनाना चाहते हैं, तो मैं एक का उपयोग करने की अनुशंसा करता हूं।

0

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

0

कोई भी भाषा जो "प्रिंट" कर सकती है, वेब पृष्ठों को उत्पन्न करने के लिए उपयोग की जा सकती है, लेकिन ढांचे आपके लिए बहुत सी HTML पीढ़ी को संभालते हैं। वे कच्चे HTML को कोडिंग के विवरण पर सामग्री पर और अधिक ध्यान केंद्रित करने देते हैं।

0

पायथन के लिए, उत्तर नहीं है आपको नहीं करना है। आप अपने वेब सर्वर के पीछे सीधे पाइथन लिख सकते हैं, इसे कैसे करें इसके लिए mod_python पर एक नज़र डालें।

ढांचे जैसे बहुत से लोग क्योंकि वे बॉयलरप्लेट कोड को विश्वसनीय रूप में बहुत अधिक आपूर्ति करते हैं, इसलिए आपको इसे स्वयं लिखना नहीं है। लेकिन, किसी भी कोड प्रोजेक्ट की तरह, आपको अपनी समस्या के लिए अपनी योग्यता पर टूल और ढांचे का चयन करना चाहिए।

0

आप निश्चित रूप से किसी भी भाषा में सीजीआई स्क्रिप्ट लिख सकते हैं और चीजें "कच्चे" कर सकते हैं।

ढांचे (आदर्श) उन चीज़ों के लिए कोड का ढेर लिखने की परेशानी को बचाते हैं जो अन्य लोगों ने पहले से ही संभाला है (सत्र हैंडलिंग इत्यादि)।

निर्णय शायद आपको जो करना है, उसके नीचे आता है। यदि ढांचे में आपको आवश्यक सुविधाएं हैं, तो इसका उपयोग क्यों न करें। यदि ढांचे में व्यापक संशोधन की आवश्यकता होगी, तो अपनी खुद की सामग्री को रोल करना आसान हो सकता है। या एक अलग ढांचे की जांच करें।

अजगर पुस्तकालय cgi करने के लिए कई मॉड्यूल, पार्स करने एचटीएमएल, कुकीज़, WSGI, आदि है:

http://docs.python.org/library/index.html

1

के रूप में क्यों:

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

1

प्रति फ्रेम आवश्यक नहीं है, लेकिन यह निश्चित रूप से विकास को गति दे सकता है और आपको "बेहतर" कोड लिखने में मदद कर सकता है। PHP में, निश्चित रूप से ढांचे हैं जो CakePHP जैसे उपयोग किए जाते हैं, और पर्ल में Mason और Catalyst जैसे कई हैं।

1

ढांचे आवश्यक नहीं हैं। हालांकि, बहुत से डेवलपर्स सोचते हैं कि ढांचे कई चीजों को स्वचालित करके विकास को आसान बनाते हैं। उदाहरण के लिए, Django आपके डेटाबेस संरचना के आधार पर आपके लिए एक उत्पादन-तैयार बैकएंड तैयार करेगा। यदि आप चुनते हैं तो यह आपको विभिन्न प्लगइन को शामिल करने देता है। मुझे रेल या पर्ल ढांचे के बारे में बहुत कुछ पता नहीं है, लेकिन जेनेंड, सिम्फनी, कोड इग्निटर, केकेपीएचपी आदि जैसे PHP ढांचे का व्यापक रूप से उपयोग किया जाता है।

जहां मैं काम करता हूं हम अपने स्वयं के PHP ढांचे को घुमाते हैं।

2

फ्रेमवर्क? बिल्ली, यदि आप पाइथन का उपयोग कर रहे हैं, तो आपको वेब सर्वर की भी आवश्यकता नहीं है, आप कोड की लगभग तीन पंक्तियों में से एक बना सकते हैं।

0

PHP में बहुत सारे ढांचे हैं। शायद सबसे अधिक तो। रूबी में ज्यादातर रेल का उपयोग करते हैं, जो आप सुनते हैं, और पाइथन के लिए डैंजो का उल्लेख नहीं किया जाता है। लेकिन PHP के साथ आपके पास से कई चुनने हैं।

List of web application frameworks

3

देखने के एक pythonic बिंदु से, आप बिल्कुल ढाँचे में से एक का उपयोग करना चाहते चाहते हैं। हां, उनके बिना एक वेब ऐप लिखना संभव हो सकता है, लेकिन यह सुंदर नहीं होगा।

  • Templating: यहाँ कुछ चीजें आप करेंगे (शायद) ऊपर खरोंच से लिख अंत है जब तक आप एक बहुत बहुत जल्दी हैक लिख रहे हैं, आप के भीतर अपने HTML के सभी पैदा किया जा नहीं करना चाहते हैं अपने पायथन कोड - यह वास्तव में एक खराब डिजाइन है जो एक रखरखाव दुःस्वप्न बन जाता है।

  • यूआरएल प्रोसेसिंग: एक यूआरएल विभाजित करना और कौन सा कोड चलाने के लिए पहचानना एक छोटा काम नहीं है। Django (उदाहरण के लिए) नियमित अभिव्यक्तियों के एक सेट से देखने के कार्यों के एक सेट से मानचित्र करने के लिए एक शानदार तंत्र प्रदान करता है।

  • प्रमाणीकरण: अपने खुद के प्रवेश/लॉगआउट/सत्र प्रबंधन कोड रोलिंग, एक दर्द है, खासकर जब वहाँ पहले से ही पूर्व लिखित (और परीक्षण) कोड उपलब्ध है

  • त्रुटि निवारण: व्यवस्थाएं पहले से ही जगह में एक अच्छा तंत्र है ए) आपको अपने ऐप को डीबग करने में मदद करता है, और बी) उचित 404 और 500 पृष्ठों पर रीडायरेक्ट करने में सहायता करें।

इसमें जोड़ने के लिए, सभी ढांचे पुस्तकालयों का सभी परीक्षण किया जाता है (और अग्नि परीक्षण)। इसके अतिरिक्त, ऐसे लोग हैं जो समान कोड आधार का उपयोग कर विकास कर रहे हैं, इसलिए यदि आपके कोई प्रश्न हैं, तो आप शायद सहायता पा सकते हैं।

संक्षेप में, आपको यह करने की ज़रूरत नहीं है, लेकिन जब तक कि आपकी परियोजना "एक नया वेब ढांचा" न हो, तो आप संभवतः मौजूदा लोगों में से किसी एक का उपयोग करना बंद कर सकते हैं।

+0

आप अलग-अलग, असंबंधित लाइब्रेरी मॉड्यूल का उपयोग करके उन सभी कार्यों को निश्चित रूप से कर सकते हैं; आपको बहुत कुछ नियंत्रित करने के लिए जरूरी नहीं है कि एक ओवर-आर्किंग फ्रेमवर्क का उपयोग करें। निचले स्तर के डब्लूएसजीआई मानक हमें इन घटकों को एक साथ चिपकाने के लिए पर्याप्त देता है। – bobince

1

क्या ये ढांचे आवश्यक हैं?

नहीं। वे किसी भी 'ढांचे' की तरह, विकास के समय को तेज करने और प्रोग्रामर की नौकरी को आसान बनाने के लिए बस हैं।

यदि नहीं, तो क्या कोई कारण है कि इन भाषाओं का अक्सर ढांचे के भीतर उपयोग किया जाता है, जबकि पर्ल और PHP नहीं हैं?

फ्रेमवर्क का उपयोग करने के विचार से पहले वेब साइट बनाने के लिए PHP और पर्ल लोकप्रिय भाषाएं थीं। रेल की तरह ढांचे को रूबी ने निम्नलिखित दिया है। मुझे यकीन नहीं है कि पाइथन या रूबी फ्रेमवर्क द्वारा समर्थित किए जाने से पहले वेब भाषाओं के रूप में आम थे।

इन दिनों, यहां तक ​​कि PHP/पर्ल वेब विकास को ढांचे द्वारा समर्थित किया जाना चाहिए (जिनमें से अब कई हैं)।

संबंधित मुद्दे