2008-09-25 9 views
17

मैं एक PHP अनुप्रयोग को पायथन पर पोर्ट करने की योजना बना रहा हूं। आवेदन ज्यादातर डेटा संग्रह और प्रसंस्करण के बारे में है। मुख्य अनुप्रयोग स्टैंड स्टैंड अकेले कमांड लाइन एप्लिकेशन के रूप में चलता है। एप्लिकेशन में एक वेब इंटरफ़ेस है जो मूल रूप से बहुत हल्का वजन रिपोर्टिंग इंटरफ़ेस है।पायथन वेब विकास - फ्रेमवर्क के साथ या बिना

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

पाइथन में केवल सीजीआई आयात का उपयोग इस परिस्थिति में जाने का सबसे अच्छा तरीका है? मुझे लगता है कि एक ढांचा बहुत अधिक ओवरहेड है, लेकिन शायद मैं उनके बारे में बहुत "पायथन" तरीके में सोच नहीं रहा हूं। इस परिदृश्य में आपके पास क्या सुझाव हैं?

+1

फॉलो-अप के रूप में, मैं टोरनाडो का एक बड़ा प्रशंसक बन गया हूं। यह पुरुषों के लिए पर्याप्त रूप से पर्याप्त है और मैंने इसे बहुत ठोस पाया है। –

+2

क्या महिला दृढ़ता से युग्मित ढांचे को पसंद करते हैं? : डी –

उत्तर

14

कमांड लाइन पायथन, आईएमओ, निश्चित रूप से पहले आता है। इसे काम करने के लिए प्राप्त करें, क्योंकि यह आप जो कर रहे हैं उसका मूल है।

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

नंगे CGI का उपयोग न करें। यह असंभव नहीं है, लेकिन बहुत सी चीजें गलत हो सकती हैं, और वे सभी ढांचे से हल हो गए हैं। कुछ क्यों दोबारा शुरू करें? बस किसी और के कोड का प्रयोग करें।

फ्रेमवर्क में सीखना शामिल है, लेकिन कोई वास्तविक "ओवरहेड" नहीं है। वे धीमे नहीं हैं। वे कोड हैं जिन्हें आपको लिखना या डिबग करना नहीं है।

  1. कुछ पायथन जानें।

  2. Django ट्यूटोरियल करें।

  3. वेब ऐप बनाने के लिए प्रारंभ करें।

    ए। एक Django परियोजना शुरू करें। उस परियोजना में एक छोटा सा एप्लीकेशन बनाएं।

    बी। Django ORM का उपयोग करके अपना नया मॉडल बनाएं। मॉडल के लिए एक Django इकाई परीक्षण बनाएँ। सुनिश्चित करें कि यह काम करता है। आप डिफ़ॉल्ट व्यवस्थापक पृष्ठों का उपयोग करने में सक्षम होंगे और बहुत सारे खेलेंगे।बस संपूर्ण वेबसाइट अभी तक नहीं बनाएं।

  4. Django ORM का उपयोग करके काम करने के लिए अपना कमांड लाइन ऐप प्राप्त करें। अनिवार्य रूप से, आपको इस ऐप के लिए अच्छी तरह से काम करने के लिए सेटिंग्स फ़ाइल को तैयार करना होगा। settings/configuration अनुभाग देखें।

  5. एक बार जब आपको अपनी कमांड लाइन और डिफ़ॉल्ट व्यवस्थापक चल रहा है, तो आप वेब ऐप को समाप्त कर सकते हैं।

यहाँ चौखटे के स्वर्ण नियम है: यह कोड आप लिखते हैं, डिबग या बनाए रखने के लिए की जरूरत नहीं है है। उनका उपयोग करें।

+0

मेरे आवेदन को जारी करने में, मैं इसे Django निर्भरता के साथ छोड़ देता हूं लेकिन Django वितरित नहीं करता, सही? मैं कमांड लाइन ऐप में अनियंत्रित कोड के साथ चीजों को बहुत भारी बनाने के बारे में भी चिंतित हूं। मैं Django पर अधिक बारीकी से देखता हूं, धन्यवाद। –

+0

Django एक वेब अनुप्रयोग ढांचा है। आप इसे इस्तेमाल करने के लिए इसे वेब सर्वर पर स्थापित करते हैं। यदि आप इसे सार्वजनिक डोमेन में दान करना चाहते हैं, तो आप अपना आवेदन दान करें - और कुछ नहीं। –

4

प्रोजेक्ट के आकार पर निर्भर करता है। अगर आपके पास केवल कुछ पिछली php-scripts थीं जो आपके स्टैंड अकेले एप्लिकेशन कहलाती हैं तो शायद मैं एक सीजीआई-एप के लिए जाऊंगा।

यदि आपके पास डेटाबेस, यूआरएल रीराइटिंग, टेम्पलेटिंग, उपयोगकर्ता प्रबंधन और ऐसे के लिए उपयोग किया गया है, तो फ्रेमवर्क का उपयोग करना एक अच्छा विचार है।

और निश्चित रूप से, इसे बंद करने से पहले, इस बात पर विचार करें कि क्या यह भाषा को स्विच करने के लिए उचित है या यदि आपको आवश्यक पाइथन सुविधाओं की आवश्यकता है।

शुभकामनाएं!

+0

सलाह के लिए धन्यवाद। आपके द्वारा सूचीबद्ध अधिकांश ढांचे की चिंताओं वास्तव में उस क्षेत्र में नहीं हैं जहां से मैं चिंतित हूं, इसलिए मेरा विवाद है। –

0

यह आपके आवेदन को वितरित करने के तरीके पर निर्भर करता है।
यदि यह केवल आंतरिक रूप से उपयोग किया जाएगा, django के लिए जाओ। इसके साथ काम करना खुशी है। हालांकि, django वास्तव में वितरण कार्य पर कम पड़ता है; django- अनुप्रयोगों को स्थापित करने के लिए एक दर्द है।

+1

देखभाल को और अधिक विस्तृत करने के लिए देखभाल? खुद को दो स्थापित करने के बाद मैं यह देखने में असफल रहा कि इतना कठिन क्या है? –

+0

mod_python नियम। मेरे लिए बहुत अच्छा काम करता है। –

+0

मैं सहमत हूं, मैंने trac के साथ mod_python का उपयोग किया है और इसे सेटअप करना आसान था। –

3

मैंने हाल ही में web.py का उपयोग कर पायथन पर एक PHP ऐप पोर्ट किया है। चूंकि ढांचे के चलते यह न्यूनतम निर्भरता के साथ बेहद हल्का होता है, और यह आपके रास्ते से बाहर रहता है, इसलिए यह समझौता हो सकता है जिसे आप ढूंढ रहे हैं।

यह सब आपके शुरुआती आवेदन पर निर्भर करता है, क्योंकि बड़े आवेदन के साथ नलसाजी को संभालने वाले पूर्ण-विशेषीकृत ढांचे के फायदे सभी ढांचे कोड के चारों ओर खींचने में शामिल नुकसान से अधिक होते हैं।

+0

सिर के लिए धन्यवाद, मैं इसे देख लूंगा। –

2

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

उदाहरणों के साथ शुरू करें, TwiD से कुछ django स्क्रीनकास्ट देखें और आप अपने रास्ते पर होंगे।

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

फ्रेमवर्क किसी भी प्रदर्शन की समस्या का कारण नहीं बन रहा है, जैसे एस लॉट ने कहा, यह कोड है जिसे आपको बनाए रखना नहीं है, और यह सबसे अच्छा तरीका है।

+0

हाँ मेरी मुख्य चिंता यह है कि Django मेरी आवश्यकताओं के लिए बहुत अधिक ढांचा है। आवेदन का 9 0% वेब परत से बाहर है। मुझे चिंता है कि Django अधिक है। इसके साथ शुरू करने के तरीके पर सिर के लिए धन्यवाद, मैं निश्चित रूप से यह जानना चाहता हूं, भले ही इस परियोजना के लिए न हो। –

11

आप web.py जैसे कुछ का उपयोग करने पर विचार कर सकते हैं जो वितरित करना आसान होगा (क्योंकि यह छोटा है) और यह आपके अन्य टूल्स को अनुकूलित करना भी आसान होगा क्योंकि इसे आपको ढांचे में जमा करने की आवश्यकता नहीं है Django करता है।

सावधान रहें, हालांकि, यह पाइथन समुदाय में सबसे पसंदीदा फ्रेमवर्क नहीं है, लेकिन यह आपके लिए सिर्फ एक चीज हो सकती है। आप web2py भी देख सकते हैं, लेकिन मुझे इसके बारे में कम पता है।

+0

धन्यवाद! मैं सिर की सराहना करता हूं। –

+0

मैं थोड़ी देर पहले इस पोस्ट में आया था और इससे मुझे वेब.py को देखने के लिए प्रेरित किया गया। मैंने इस विषय पर एक ब्लॉग पोस्ट लिखा है, जो किसी भी व्यक्ति को web.py को देखने या इसे उपयोग करने के बारे में सोचने में भी मददगार हो सकता है: http://www.drcoen.com/2010/11/web-programming- साथ-अजगर और वेब py-मेरी-अनुभव / – eclipse31

2

एक ढांचे के लिए जाओ। सत्र हैंडलिंग जैसी मूल सामग्री एक दुःस्वप्न है यदि आप एक का उपयोग नहीं करते हैं क्योंकि पायथन वेब की तरह वेब विशेष नहीं है।

यदि आपको लगता है कि django बहुत अधिक है, तो आप बहुत हल्के लेकिन अभी भी आसान वेब.py जैसे हल्का प्रयास कर सकते हैं।

2

पेटी के प्यार के लिए, एक ढांचे का उपयोग करें! वहाँ सचमुच दर्जनों ढांचे हैं, चेरीपी से डीजेंगो से अल्ब्राट्रॉस तक ... अच्छी तरह से .. आप इसे नाम दें। असल में, वेब ढांचे की बड़ी संख्या वे लोग हैं जो रेल की लोकप्रियता के बारे में सोचते हैं।

पायथन वेब विकास समुदाय को एक भी आवाज के साथ विभाजित नहीं किया गया है। लेकिन यह एक और विषय है! मुद्दा यह है कि, "वेब टूलकिट्स" (उदाहरण के लिए अल्बट्रॉस) हैं जो काफी हल्के हैं लेकिन दिन के दौरान आपको प्राप्त करने के लिए पर्याप्त शक्तिशाली हैं (उदाहरण के लिए एक बॉट ऑटो-सत्यापन करने से एक साधारण फॉर्म सबमिशन नकली नहीं होता है, या एमवीसी साफ रखने में मदद करता है)।

आप कुछ है कि "बहुत ज्यादा रूपरेखा" नहीं है चाहते हैं यहाँ देखो:

"मूल फ़्रेमवर्क Templating प्रदान करना" के अंतर्गत

http://wiki.python.org/moin/WebFrameworks

देखो। वे सभी हल्के वजन वाले हैं और आप पर "मैक ट्रक को मजबूर किए बिना" पहिया को पुन: पेश न करें "सब कुछ करें।

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