2009-12-10 7 views
11

अब जब मैं web2py से अपेक्षाकृत परिचित हो गया हूं, तो मैं Django को जाना चाहता हूं।वेब 2py डेवलपर्स के लिए Django

मुख्य अंतर क्या हैं?

वेब 2py ज्ञान को ध्यान में रखना शुरू करने का सबसे प्रभावी तरीका क्या होगा? (यह कुछ अजगर अनुप्रयोग फ्रेमवर्क ज्ञान होना, कोई मदद करनी चाहिए?)

संपादित

इसके अलावा, आप दोनों का उपयोग किया है, तो आप एक राय है जिस पर आप पसंद करते हैं और यही कारण है की पेशकश कर सकते हैं?

+1

मुझे विश्वास है कि आपको पहले यह सुनिश्चित करना चाहिए कि आप पाइथन जानते हैं।Web2py काम नहीं करता है क्योंकि सामान्य पायथन कोड काम करेगा - वैश्विक नामस्थान एक गड़बड़ है, कई चीजें पूरी तरह से आयात की जाती हैं, वेबपीपी के आंतरिक कोड को _pythonic_ के रूप में कॉल करना मुश्किल होता है और कभी-कभी आप दीवार को दबाते हैं (उदाहरण के लिए, यदि आप 'डीबी' डेटाबेस को परिभाषित करते हैं 'db.py' में, जैसा कि ट्यूटोरियल द्वारा सुझाया गया है, फिर वैश्विक' db' चर 'models.py' और उदाहरण में' people.py' में पहुंच योग्य होगा, लेकिन '.py.py' में नहीं)। बस अपने कोड को फिर से व्यवस्थित करना सीखें, जिस तरह से web2py काम करता है, लेकिन जिस तरह से Django कोड काम करता है। – Tadeck

उत्तर

25

वेब 2py Django द्वारा बहुत प्रेरित था और यदि आप जानते हैं कि दूसरे को सीखना आसान है। हमने कुछ विशेषताएं जो हमें Django में नहीं मिलीं, जिनमें शामिल हैं: डेटाबेस माइग्रेशन (स्वचालित रूप से तालिकाओं को बदलना), त्रुटियों पर टिकट, एक वेब आधारित आईडीई, एक डाटाबेस एब्स्ट्रक्शन लेयर जो Google App Engine पर काम करता है, एक प्लग आधारित एक्सेस कंट्रोल मैकेनिज्म प्लग करने योग्य लॉगिन के साथ मॉड्यूल।

मौलिक डिज़ाइन अंतरों में से एक यह है कि Django ऐप्स में मॉड्यूल के रूप में लागू किया जाता है और इसलिए जब आप उन्हें संपादित करते हैं तो सर्वर को पुनरारंभ करने की आवश्यकता होती है। वेब 2py में मॉडल/व्यू/कंट्रोलर मॉड्यूल नहीं हैं, उन्हें फ्रेमवर्क द्वारा निष्पादित (आयात नहीं किया जाता है) और इसलिए जब वे बदलते हैं तो आपको सर्वर को पुनरारंभ करने की आवश्यकता नहीं होती है।

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

Django लंबे समय से रहा है ताकि आप इसके साथ अधिक कुशल और अधिक अनुप्रयोगों को तैनात कर सकें।

+4

जब आप अपना कोड बदलते हैं तो आपको अपने Django सर्वर को पुनरारंभ करने की आवश्यकता नहीं है (http://www.djangoproject.com/weblog/2005/jul/20/autoreload/)। ऐसा लगता है कि यह 2005 के मध्य से सच रहा है। – MikeWyatt

+2

यदि आप Django सर्वर का उपयोग नहीं करते हैं, लेकिन यदि मुझे गलत नहीं है - तो आप अपाचे को फिर से शुरू करने की आवश्यकता है यदि आप Apache + mod_wsgi या mod_python के साथ Django चलाते हैं। वेब 2py में आपको वेब सर्वर को पुनरारंभ करने की आवश्यकता नहीं है भले ही आप अंतर्निहित एक का उपयोग न करें। – mdipierro

+1

आपको अपाचे को पुनरारंभ करने की आवश्यकता नहीं है, आप mod_wsgi या fcgi पुनः लोड कर सकते हैं। – rapadura

6

यह निश्चित रूप से कुछ पायथन ढांचे के ज्ञान में मदद करता है।

सबसे प्रभावी तरीका हो, दो, यानी मॉडल, देखें, नियंत्रक, यूआरएल भेजने, टेम्पलेट, फार्म, के विभिन्न क्षेत्रों की तुलना करने के हैं आरंभ करने के लिए आदि

Here कुछ ढाँचे में से एक महान तुलना है । मुझे यकीन है कि यह मदद करेगा।

+0

लिंक अब और काम नहीं करता है। क्या आप उस संसाधन को ढूंढ सकते हैं जिसका आप उल्लेख कर रहे थे और लिंक अपडेट कर रहे थे? यह बहुत अच्छा होगा। धन्यवाद। – Tadeck

4

मैं web2py पर बसने से पहले एक Django प्रोग्रामर था। मैंने वेब 2py के साथ खुद को और अधिक कुशल पाया, संभवतः समझदार डिफ़ॉल्ट (अंतर्निहित आयात, डिफ़ॉल्ट विचार, आदि) और forum पर शानदार समर्थन के कारण।

9

मैंने Django में पूरी तरह से एक छोटा सा घर का वेब ऐप बनाया, और उसके बाद पूरी तरह से web2py में। डेवलपर अनुभव पर मतभेदों और उनके प्रभाव को वास्तव में समझने का यही एकमात्र तरीका है।

मैं web2py पसंद करता हूं क्योंकि Django द्वारा प्रदान किए गए पर्यावरण में अधिक सुविधाएं उपलब्ध हैं, लेकिन web2py Django से कहीं अधिक नई है, और हिंडसाइट हमेशा नए कार्यान्वयन को बेहतर बनाता है। चूंकि वेब 2py ने पिछड़े संगतता की गारंटी दी है, इसलिए यह पूरी तरह से व्यवहार्य है कि कुछ नए टूल अब से कुछ वर्षों में वेब 2py पुराने हो गए हैं। चीजों का यही सामान्य तरीका है।

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

+1

अच्छा बिंदु, +1। लेकिन _real_ अंतर स्पष्ट रूप से दिखाई दे रहे हैं जब आप कुछ और अधिक उन्नत करने की कोशिश कर रहे हैं, दोनों ढांचे में अधिक अनुकूलित। मेरा मानना ​​है कि आप यह देखने में सक्षम हैं कि Django Web2Py से बेहतर है, क्योंकि आप अपने आवेदन में क्या होता है इसके बारे में स्पष्ट हैं, वेब 2Py की सभी सुविधाएं भी हैं, या Django में आसानी से कार्यान्वित की जा सकती हैं। कुछ मतभेद हैं, जैसे Django में वेब-आधारित आईडीई की कमी (शायद इसके लिए एक मॉड्यूल है), लेकिन कम से कम Django को विभिन्न आईडीई द्वारा सही ढंग से व्याख्या किया जाता है, और यह अत्यधिक अनुकूलन और स्थिर है। – Tadeck

+2

@Tadeck: web2py के साथ अपने अनुभव के बारे में, मैंने सफलतापूर्वक साइटों को भेज दिया, मेरे ऐप्स में क्या हो रहा था, इस बारे में बहुत स्पष्ट था, सुविधाओं को दोबारा नहीं करना था, आईडीई में इस्तेमाल किया गया वेब 2py बस ठीक है (पायडेव ग्रहण), ट्रंक में कोड का योगदान दिया , सही स्थिरता का अनुभव किया (web2py अग्रेषित संगतता!), web2py पुस्तक में योगदान दिया, और आम तौर पर एक दोस्ताना समुदाय के साथ बातचीत का आनंद लिया। मुझे यकीन है कि ये सभी चीजें Django के साथ भी संभव है। मैं तो बस कह रहा हूं'। –

11

Django = वर्ष web2py = नए

कुछ भी Django करता है, web2py बेहतर है। हालांकि यह सभी नए गलतियाँ करता है इसका कारण यह है web2py Django के बाद लंबे समय तक किया गया था और Django की गलतियों से सीखा है है;)

मुख्य अंतर है, और क्या मुझे web2py में रखते हुए किया गया है:

  1. Django अविश्वसनीय प्रलेखन है ... web2py इतना सहज है कि इसे उतना ही जरूरत नहीं है ... हाउवर! मुझे पता चला है कि अधिकांश भाग के लिए Django दस्तावेज web2py पर लागू होता है। यदि आप एक दिन बिताते हैं और django पुस्तक (सी 1-7) पढ़ते हैं, तो आपको यह पता चल जाएगा कि यह कैसे सच है। तो एक तरह से, Django बेहतर दस्तावेज कह रहा है asinine है। साथ ही, ध्यान दें कि किसी भी ढांचे के लिए दस्तावेज की मात्रा के बारे में बात करने के लिए एक अच्छी चीज के रूप में बात की जाती है ... चिंतित रहें ... दस्तावेज अच्छा है, किसी को भी बेहतर से शुरू करने की आवश्यकता नहीं है। 90% उपयोगकर्ताओं की आवश्यकताओं को पूरा करने के मुकाबले Web2py का मौजूदा दस्तावेज अधिक है। शेष 10% को फ्रेमवर्क लाइब्रेरी कोड पर एक नज़र डालना है (जितना अधिक डैंजो के रूप में नहीं, और डरावना नहीं)। साथ ही, यदि आप उस बिंदु पर पहुंच जाते हैं जहां आप पुस्तकालय कोड के माध्यम से अपने 30% से अधिक समय व्यतीत कर रहे हैं, तो समय सीमा से दूर जाने और पुस्तकालयों (जैसे कि पिलों) के संग्रह की ओर बढ़ने का समय है। उस बिंदु पर इसका मतलब है कि आप कुछ भी नहीं कर रहे हैं जो वेब ढांचे को संभालने के लिए डिज़ाइन किए गए थे ...

  2. Django में SQLForm TextModel है। एक बार जब आप TextModel (= SQLForm) का उपयोग करके एक फॉर्म बनाते हैं। शुभकामनाएं एक इनपुट क्षेत्र के सीएसएस को बदलने की कोशिश कर रही है! Web2py में आप सिर्फ form.element() करते हैं, Django में ऐसी कोई चीज़ नहीं है। आपको "विजेट()" के माध्यम से जाना है, लेकिन विजेट पर जाने के लिए, आपको पहले इनपुट फ़ील्ड प्रकार, आदि के माध्यम से जाना होगा ...

  3. इसके अलावा, मैन्युअल डीबी माइग्रेशन ... स्कीमा बदलें? क्षमा करें ... या तो एक अलग माइग्रेशन ऐप (दक्षिण) को डाउनलोड और इंस्टॉल करना होगा, या इसे अपने डीबी कंसोल में मैन्युअल रूप से करना होगा।

  4. अन्त में, कोई एकाधिक डीबीएस ... के लिए बॉक्स से बाहर समर्थन हुप्स लगता है ...

दूसरे शब्दों में ... Django के साथ ... तुम कूद और हुप्स की तरह उम्मीद है।

तुम सच में web2py से आगे छलांग लेने के लिए चाहते हैं, कोशिश Pylons ... गंभीरता से ...

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

निष्कर्ष एक दिन बिताएं Django पुस्तक (ch 1-7) पढ़ा है, और Pylons पुस्तक (भाग 1) पढ़ा है, और फिर तुम क्यों एक रूपरेखा का उपयोग कर रहे के साथ शुरू करने के बारे में सोचते हैं। मेरे लिए यह जितनी जल्दी संभव हो सके, और 30% समय दस्तावेज को देखे बिना।

Web2py मेरे लिए उपर्युक्त आवश्यकताओं को पूरा करता है।

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