2011-10-12 11 views
6

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

मुझे लगता है कि एमवीसी इसके लिए अच्छा काम करता है, लेकिन मैं वास्तव में एक वेब ऐप नहीं कर रहा हूं। मुझे ऐसा कुछ चाहिए जो किसी वेब सर्वर की आवश्यकता नहीं है, लेकिन कुछ कोडिंग मानकों को मजबूर करने के लिए ढांचे के फायदे हैं।

क्या किसी के पास कोई सुझाव या सुझाव हैं? मुझे पता है कि मैं पाइथन के साथ खरोंच से कुछ बना सकता हूं, लेकिन अगर मैं वहां कुछ और कर सकता हूं तो मैं उत्सुक हूं।

धन्यवाद, डस्टिन

उत्तर

0

पैटर्न के लिए निष्पक्ष होना करने के लिए, MVC वेब अनुप्रयोगों के लिए बाध्य नहीं है। मुझे लगता है कि पिछले कुछ वर्षों की वेब-जागरूक प्रवृत्ति के कारण एमवीसी और वेब ऐप्स के बीच यह संबंध बढ़ सकता था। अलग-अलग रखें, एक वेब ऐप एमवीसी का उपयोग कर सकता है, लेकिन एमवीसी का उपयोग करने का मतलब यह नहीं है कि आपके पास एक वेब ऐप है।

यदि आप एक ढांचे का उपयोग करना चाहते हैं, तो आप अपने इच्छित नियंत्रक के सबसे नज़दीकी उपयोग करने का प्रयास कर सकते हैं। मुझे एक एमवीसी फ्रेमवर्क के बारे में पता नहीं है जिसमें इंटरफ़ेस के रूप में कमांड लाइन है, लेकिन इसका उपयोग करने वाले कुछ प्लेटफॉर्म स्वतंत्र जीयूआई ढांचे उदाहरण के लिए GTK+ या QT हैं: दोनों में पाइथन बाइंडिंग हैं।

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

निष्कर्ष में, यह सब अनुशासन के लिए उबाल जाता है। यहां तक ​​कि सबसे अच्छा ढांचा आपको कोडिंग मानकों का उल्लंघन करने और कोनों को काटने से नहीं रोक सकता है ...

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

सीमेंट अजगर के लिए एक उन्नत CLI अनुप्रयोग फ्रेमवर्क है:

+0

नहीं, एमवीसी वेब अनुप्रयोगों के लिए बाध्य नहीं है :) http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#History – Honza

20

हालांकि यह किसी और ने इस भर में ठोकर के लिए पोस्टिंग, थोड़ी देर हो चुकी है। प्रारंभ करना आसान है, और यह लॉगिंग से कॉन्फ़िगरेशन फ़ाइल पार्सिंग में लगभग हर टुकड़े को अनुकूलित करने के लिए बेहद लचीला है। Cement2 (कोड नाम पोर्टलैंड) वर्तमान में बीटा में है, लेकिन बहुत एक स्थिर रिलीज के करीब है:,

http://cement.readthedocs.org/en/portland/

साथ ही यदि आप एक बाकी कमांड लाइन ग्राहक बना रहे हैं, यह भी dRest चेकआउट:

http://drest.readthedocs.org/en/latest/

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

मुझे किसी भी प्रश्न का उत्तर देने में खुशी होगी।

+0

एफवाईआई, सीमेंट 2.2 बाहर है और http://builtoncement.com/ – DuffJ

+0

पर स्थिर क्या डीओसीएस के अलावा सीमेंट के लिए वहां कोई ट्यूटोरियल है? यह एक परियोजना के लिए बिल्कुल सही लगता है ... – ProfVersaggi

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