2012-04-02 7 views
7

मैं जानना चाहता हूं कि पाइथन में एक विशाल ढांचे के बिना वेब पेज बनाने का कोई तरीका है या नहीं।पायथन: बिना किसी विशाल ढांचे के सरल वेब पेज कैसे बनाएं?

मुझे कुछ ऐसा लगता है जैसे PHP/Apache, जो एक भाषा के रूप में आता है और बहुत अधिक ओवरहेड के साथ नहीं (लेकिन मुझे PHP पसंद नहीं है ...)। PHP में कोई ओआरएम नहीं है, कोई टेम्पलेट इंजन नहीं है, लेकिन ब्राउज़र पर Hello World प्रिंट करना बहुत आसान है।

मुझे Django के बारे में पता है और वास्तव में यह पसंद है, लेकिन यह सरल वेब पोर्टल (5-10 पृष्ठों) के लिए थोड़ा बड़ा है।

मुझे बहुत कुछ इंस्टॉल किए बिना वास्तव में कुछ आसान पसंद है।

+3

आप ढांचे की क्या अपेक्षा करते हैं? आपने केवल यही कहा है कि यह * नहीं * करना है। अगर इसे कुछ भी नहीं करना चाहिए, तो एक अच्छा संपादक के साथ सिर्फ HTML पृष्ठों को लिखने के बारे में कैसे? –

+0

वही है जो PHP करता है, POST/GET मान प्राप्त कर रहा है, प्रसंस्करण, echo'ing। –

+1

कृपया अपना प्रश्न अपडेट करें, और यथासंभव सटीक होने का प्रयास करें। अन्यथा, यह सवाल है "अपने पसंदीदा हल्के पायथन वेब ढांचे को पोस्ट करें", जो एसओ के लिए उपयुक्त नहीं है। –

उत्तर

3

क्या आपने Flask देखा है?

यह एक बहुत ही सरल ढांचा है, और स्थापित करने और शुरू करने में बहुत आसान है।

+0

बोतल एक समान न्यूनतम ढांचा है जिसे मैं उपयोग करना पसंद करता हूं: http://bottlepy.org/docs/dev/ –

+0

हां, मुझे बोतल की जानकारी है, मुझे विश्वास है कि फ्लास्क भी इससे प्राप्त हुआ है। – pcalcao

+0

हाँ! बस! धन्यवाद। यही वही है जो मैंने खोजा था। सरल। –

0

mod_python शायद?

+0

mod_python आपको ऐसा करने देता है? कृपया बताएं कि क्या है, और यदि संभव हो तो एक उदाहरण प्रदान करें, इसलिए लोगों को क्लिक करने की आवश्यकता नहीं है। – agf

+0

अपाचे के बारे में जो भी जानता है, वह कम से कम लगभग नाम से mod_python करता है। –

1

मुझे यकीन नहीं है कि आपके उद्देश्यों के लिए django flatpages के साथ क्या गलत है।

एक और विकल्प डीजेंगो टेम्पलेट सिस्टम को जिन्जा जैसे कुछ और शक्तिशाली के साथ प्रतिस्थापित करना होगा, ताकि आप अपना टैग सूप लिख सकें और दृश्य में न्यूनतम तर्क के साथ वहां प्रोसेसिंग कर सकें।

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

0

मैं सिफारिश करेंगे CherryPy

import cherrypy 
class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 

cherrypy.quickstart(HelloWorld()) 
2

अच्छा वर्ष सीजीआई जल्द से जल्द सहायता आरंभ करने के लिए है। अधिकांश कॉन्फ़िगरेशन पर, आपको केवल 'cgi-bin' में एक पायथन स्क्रिप्ट छोड़नी होगी और इसे निष्पादन योग्य बनाना होगा, कुछ भी इंस्टॉल करने की आवश्यकता नहीं है। "सीजीआई पायथन" के लिए Google, बहुत सारे ट्यूटोरियल हैं, उदा। this one सुंदर सभ्य दिखता है।

0

निश्चित रूप से, आप वास्तव में CGI या wsgiref मार्ग के साथ दुबला जा सकते हैं। हालांकि, आप जो भुगतान करते हैं वह आपको मिलता है, और मैं उन सभी दर्दों के लिए Flask या WerkZeug पसंद करता हूं।

wsgiref python docs से:

from wsgiref.simple_server import make_server 

def hello_world_app(environ, start_response): 
    status = '200 OK' # HTTP Status 
    headers = [('Content-type', 'text/plain')] # HTTP Headers 
    start_response(status, headers) 
    return ["Hello World"] 

httpd = make_server('', 8000, hello_world_app) 
print "Serving on port 8000..." 

# Serve until process is killed 
httpd.serve_forever() 
4

मैं बोतल (और bottle.py) अतीत में प्रयोग किया गया है, लेकिन इन दिनों मैं वास्तव में Pyramid, from the Pylons folks पसंद करते हैं।

पिरामिड एक बड़े, पूर्ण रूप से ढांचे के रूप में सक्षम है, लचीलापन के लिए डिज़ाइन किया गया है, और प्लगइन और एक्सटेंशन की कोई कमी नहीं है जो अतिरिक्त कार्यक्षमता जोड़ती है - लेकिन यह छोटी, एकल-फ़ाइल परियोजनाओं में भी सक्षम है; this tutorial for an example देखें।

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

+0

हाँ, पिरामिड अच्छा लगता है, लेकिन फ्लास्क वास्तव में मेरी 'समस्या' के लिए बेहतर समाधान है, क्योंकि मैं बड़ी चीजों के लिए Django पर स्विच करूँगा। –

+0

@ डेविडहल्टर यह केवल तभी काम करता है जब आप आगे बढ़ते हैं यदि आपकी परियोजना "बड़ी चीज़" होने जा रही है। यदि यह छोटा शुरू होता है और फिर व्यवस्थित रूप से बढ़ता है, तो एकमात्र पथ होने पर एक पूर्ण पुनः लिखना 'बेकार होता है। (इसके अलावा, एक पूर्व Django डेवलपर के रूप में, मैं थोड़ा अस्पष्ट हूं कि क्यों आप एक गंदे रूप से डरावनी ओआरएम के साथ कुछ स्विच करने के लिए _want_ चाहते हैं [कम से कम SQLAlchemy की तुलना में, मानक जिसके द्वारा अन्य सभी को मापा जाना चाहिए], एक दर्दनाक धीमी गति से इंजन, एक कम प्लग करने योग्य यूआरएल रूटिंग तंत्र, और बहुत आगे ... लेकिन यह एक पूरी तरह से अलग बातचीत है)। –

+0

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

0

पायथन सीजीआई का उपयोग करके अच्छी तरह से काम करता है।

यह सबसे आसान काम है जो आप कर सकते हैं: इसे केवल अपाचे और एक काम करने वाले पायथन पर्यावरण की आवश्यकता है, और यह मानक PHP सेटअप के सबसे नज़दीक है।

याद रखें कि, CGI का उपयोग करते समय, आपकी पाइथन स्क्रिप्ट आवश्यक HTTP शीर्षलेख (sys.stdout.write('Content-Type: text/html\n\n')) को आउटपुट करने के लिए ज़िम्मेदार है, लेकिन एक सीजीआई मॉड्यूल है जो पाइथन मानक लाइब्रेरी का हिस्सा है जो कच्चे माल (पोस्ट के साथ)/तर्क पार्सिंग, हेडर पुनर्प्राप्ति, हेडर पीढ़ी प्राप्त करें)।

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