2010-02-16 15 views
22

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

+4

"ढांचे का प्रतिबंध"।आप क्यों कहते हैं कि एक ढांचा एक प्रतिबंध है? PHP आपको बहुत कठिन कोड लिखने से बचाने के लिए एक विशाल और परिष्कृत ढांचा है। उस स्तर की शक्ति को क्यों छोड़ दें? फ्रेमवर्क के साथ क्या गलत है कि PHP ठीक है लेकिन एक और गैर-PHP ढांचा ठीक नहीं है? –

+9

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

+1

@ डीआर हाइड्रिलिस्क: PHP अकेले खड़े हो सकते हैं। हालांकि, अपाचे में एम्बेडेड होने पर, यह निश्चित रूप से एक ढांचा है। Mod_php के अपने स्वयं के संस्करण को "स्क्रैच से" लिखने का प्रयास करें और सभी चीजें PHP आपके लिए स्वचालित रूप से कर रही हैं। एक ढांचे का उपयोग करने का मुद्दा यह है कि यह आपको विवरण से मुक्त करता है। PHP आपको कई HTTP प्रोसेसिंग विवरणों से मुक्त करता है। कई पायथन ढांचे आपको विवरण से मुक्त करते हैं। फ्रेमवर्क "सुविधाओं के साथ भरवां" हैं? वास्तव में? क्या आप अपने प्रश्न को विशेष रूप से उन सुविधाओं की पहचान करने के लिए अपडेट कर सकते हैं जिन्हें आप पसंद नहीं करते हैं? –

उत्तर

23

WSGI वेब सर्वर इंटरफेस के लिए पायथन मानक है। यदि आप अपना स्वयं का ढांचा बनाना चाहते हैं या ढांचे के बिना काम करना चाहते हैं, तो आपको उस पर ध्यान देना चाहिए। विशेष रूप से मुझे Ian Bicking's DIY Framework आलेख उपयोगी पाया गया है।

एक के रूप में अलग रूप में, मुझे लगता है कि करने के लिए व्यवस्थाएं उपयोगी होते हैं करते हैं और व्यक्तिगत रूप से, Django का उपयोग जिस तरह से Pylons काम करती है, और — प्रोटोटाइप के लिए अतीत में Bottle का इस्तेमाल किया है आप बोतल को देखने के लिए चाहते हो सकता है अगर आप एक रहने बाहर चाहते हैं -अपने-तरीके से microframework।

+5

धन्यवाद, मैं देखूंगा। लोग यहां जवाब देने में बहुत तेज़ हैं, मुझे इस जगह से प्यार है: डी –

2

आपको सीजीआई या FastCGI जैसे कुछ देखना होगा, जो वेबसर्वर से संवाद करने के लिए एक एपीआई प्रदान करता है।

Google App Engine आपको सरल ऐप्स लिखने में सक्षम बनाता है, और यहां तक ​​कि एक स्थानीय वेबसर्वर भी प्रदान करता है जहां आप चीजों को आजमा सकते हैं।

+0

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

+0

मैं ऐप इंजन में देख रहा था, दिलचस्प लग रहा है। –

3

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

जैसा कि है, mod_wsgi केवल अनुरोध पार्सिंग और परिणामों को तैयार करने की मूल बातें संभाल लें।

सत्र, कुकीज़, आपके प्रतिक्रिया पृष्ठों के लिए टेम्पलेट जनरेटर का उपयोग करके, आश्चर्य की बात होगी।

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

+0

मुझे एक चुनौती पसंद है: डी –

+0

हम्म, mod_wsgi तकनीकी रूप से एक ढांचा नहीं है, यह एक डब्लूएसजीआई एडाप्टर है। यह HTTP अनुरोध पार्सिंग को भी संभाल नहीं करता है क्योंकि अपाचे इसके लिए सब कुछ करता है। –

+2

@ ग्राहम डम्प्लेटन: "तकनीकी रूप से एक ढांचा"? तकनीकी परिभाषा क्या है? –

0

एक PHP प्रोग्रामर के लिए, मुझे लगता है कि mod_python किसी भी ढांचे के बिना शुरू करने का एक अच्छा तरीका है। इसका उपयोग सीधे अपाचे 2 मॉड्यूल के रूप में किया जा सकता है। आप कोड टैग (PHP में <? ?> की तरह) और यहां तक ​​कि सशर्त HTML आउटपुट (एचटीएमएल के अंदर बयान करता है, तो) हो सकता है:

<% 
if x == y: 
    # begin 
%> 

    ... some html ... 

<% 
# end 
%> 

(सरलीकृत उदाहरण से लिया onlamp.com के Python Server Pages tutorial)

+0

अच्छा लग रहा है, लेकिन मैं भी विरोधी अपाचे हूं .. क्या Nginx के लिए कुछ भी है? –

+0

nginx के लिए एक wsgi मॉड्यूल प्रतीत होता है: http://wiki.nginx.org/NginxNgxWSGIModule – AndiDog

1

आप चाहिए web.py आज़माएं, यह कम से कम सुविधाओं को प्रदान करता है जो आपके रास्ते में नहीं आते हैं।

http://webpy.org/

-2

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

+0

जैसा कि मैंने उपरोक्त कहा है, मुझे अपनी चीजें लिखना अच्छा लगता है, और जब मैं उन्हें लिखता हूं, तो मैं सुनिश्चित करता हूं कि मैं उन सभी का पालन करता हूं चीजें, जब मैं प्रोग्रामिंग की बात करता हूं तो मैं पूर्णतावादी हूं (एक गंभीर अनुकूलन सनकी, इसका दर्द)। और मैं अपने अधिकांश कोड के लिए लाइब्रेरी रखता हूं, इसलिए जब मुझे कुछ करने की ज़रूरत होती है तो मैं उन्हें एक साथ चिपकता हूं और मुझे एक व्यक्तिगत मिनी फ्रेमवर्क मिला है जिसमें केवल मेरी ज़रूरत है, लेकिन मुझे अभी भी बाद में जोड़ा जा सकता है। –

+1

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

1

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

आप कर खत्म हो जाएगा:

import cgi # if you want to work with forms and such 
import cgitb; cgitb.enable() # to barf up errors to the web 
print 'Content-type: text/html\n\n' # to start off any HTML. 

आप अपने दम पर सत्र सामान लिखने के लिए होगा।

+0

मुझे लगता है कि मैं वेब विकास के लिए पाइथन का उपयोग नहीं कर रहा हूं, मैं इसे सामान्य उद्देश्य प्रोग्रामिंग भाषा के रूप में उपयोग करूंगा। PHP पर वापस जाकर शायद रेल को एक और प्रयास दें (या मुझे पता है कि यह एक ढांचा है .. यह केवल एकमात्र ऐसा है जिसे मैं वास्तव में पसंद करता था, यह सिर्फ रूबी वाक्यविन्यास इतना परेशान है)। –

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