2011-01-13 12 views
5

मैं php का उपयोग करने के बजाय वेबपृष्ठ बनाने के लिए अजगर को आजमा देना चाहता था। हालांकि मैं इस बात पर आया कि आपको या तो mod_python या mod_wsgi को पायथन के साथ खेलने के लिए अपाचे में स्थापित करने की आवश्यकता है। यदि अब आप शुद्ध उपयोग करते हैं, तो मुझे यकीन नहीं है कि इसे शुद्ध, पायथन कोड कहा जाना चाहिए, डीजेंगो जैसी किसी भी वेब ढांचे का उपयोग न करें। मुझे पता चला कि एक साधारण पृष्ठ बनाना mod_python और mod_wsgi में अलग दिखता है।पायथन आधारित वेबपृष्ठ बनाने के दो तरीके?

कैसे आते हैं? जितना अधिक मैंने पाइथन में देखा, यह वेबपृष्ठों को PHP से तुलना करने के लिए उपयोग करने के लिए एक कठिन भाषा प्रतीत होता था। क्या पाइथन वेब डेवलपमेंट सीखने के लिए कुछ अच्छा प्रारंभिक बिंदु है?

क्षमा करें अगर मेरा प्रश्न धुंधला है। मैं बस पाइथन वेब विकास के साथ शुरू करने के लिए कुछ मार्गदर्शन चाहता हूं

+0

Django का उपयोग क्यों न करें, शुद्ध-पायथन के बारे में कुछ खास नहीं है जब तक कि आपको तैनाती की आवश्यकता न हो। – orlp

+0

हाँ, अगर आप सिर्फ अजगर की खोज कर रहे हैं, तो Django या Pylons जैसे ढांचे का प्रयास करें। मैं वही कर रहा हूं, और मुझे पिलोन मिल गया और मेरे उबंटू लैपटॉप पर चल रहा था, जिसमें केवल एक घंटे या दो झुकाव था। (बेशक, मेरे पास अभी भी सभी ढांचे के प्रस्तावों के साथ परिचित होने के लिए बहुत कुछ पढ़ना है, लेकिन मैं अब कम से कम बुनियादी पृष्ठ कर सकता हूं।) – keithjgrant

+1

यह पहली बार पहली तरह के ढांचे का उपयोग करके "कठिन" क्यों दिखता है, क्योंकि इस तरह से विकास करना और अधिक व्यवस्थित है, अलग-अलग चिंताओं को अलग करना और डेवलपर्स को कहीं भी डंपिंग कोड से रोकना, प्रेजेंटेशन, तर्क और डेटा एक्सेस मिश्रण करना। यह एक अच्छी बात है। –

उत्तर

3

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

यदि आप पाइथन के लिए एक php-like अनुभव की तलाश में हैं, तो आप web.py या Flask देख सकते हैं। ढांचे के रूप में वे काफी सरल हैं, और सर्वर के साथ बातचीत करने का ख्याल रखते हैं लेकिन अन्यथा आपके रास्ते से बाहर रहें।

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

यदि आप चीजों को और भी अधिक php-like फैशन में करना चाहते हैं, तो आप CGI का उपयोग कर सकते हैं। यह निश्चित रूप से एक अनुशंसित समाधान नहीं है, और आपको आगे बढ़ने के सर्वोत्तम प्रथाओं को नहीं सिखाएगा, लेकिन यह आपको शुरू कर सकता है ...

वास्तव में, एक ढांचे पर विचार करें। इस प्रकार वेब के लिए पायथन में अधिकांश विकास किया जाता है, और यदि आप एक का उपयोग करना विकसित करते हैं तो आप अधिक उपयोगी कौशल सीखेंगे।

0

आप साधारण CGI का उपयोग कर सकते हैं, जो वास्तव में सरल है।

#!/usr/bin/env python 

import sys 

sys.stdout.write("Content-type: text/html\r\n\r\n") 

print("Hello <em>world</em>!") 

इस फाइल निष्पादन योग्य (chmod +x) और एक निर्देशिका आप अपने वेब सर्वर में सीजीआई फ़ाइलों के लिए कॉन्फ़िगर कर दिया है में रख: एक अजगर प्रोग्राम है जो कुछ इस तरह दिखता बनाएँ।

आपको मानक पायथन cgi मॉड्यूल भी बहुत उपयोगी मिलेगा।

1

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

पायथन में शुद्ध फ्रेमवर्क रहित वेब विकास के निकटतम आप सीधे डब्लूएसजीआई ऐप लिखना चाहते हैं। यह वास्तव में उन चीज़ों को देखने में आपकी सहायता करेगा जो Django जैसे ढांचे को अस्पष्ट करेंगे।

चीजों को आसान बनाने के लिए, आप Werkzeug का उपयोग करने पर विचार कर सकते हैं, जो डब्लूएसजीआई के लिए उपयोगिता पुस्तकालय है।इसमें कई घटक हैं जो ढांचे की तरह हैं, लेकिन आप चुन सकते हैं कि आप कौन से चाहते हैं और आप कौन सी नहीं हैं। उदाहरण के लिए, यूआरएल को पार्स करने और प्रेषण के लिए इसमें वास्तव में साफ प्रणाली है। Werkzeug भी एक सरल कमांड लाइन WSGI सर्वर है जो अपाचे से विकास के लिए शायद बेहतर है।

0

यदि आपका लक्ष्य आपके पायथन प्रोग्राम को वेब अनुकूल बनाने के लिए है तो उत्तर Cherrypy है। यह एक बहुत ही लचीला और सरल ढांचा है जो आपके पाइथन वस्तुओं को वेब में उजागर करता है। इसे जांचें और इसमें एक अच्छा वेब सर्वर बनाया गया है जिसमें आपको apache/mod_wsgi इत्यादि की आवश्यकता नहीं है,

1

मैं आपको कुछ सलाह के साथ जवाब दे रहा हूं, जो आपके जैसा ही स्थिति में था बस कुछ महीने पहले।

तो आप अपनी वेबसाइट की मेजबानी के लिए अपाचे का उपयोग कर रहे हैं। यह अच्छा है। पाइथन को अपाचे के साथ अच्छा बनाने के लिए, आप mod_wsgi का उपयोग करना चाहते हैं, अन्य कारणों के कारण: चिंता का पृथक्करण इसे सीजीआई से बेहतर बनाता है और mod_python अब समर्थित नहीं है।

हालांकि, आपकी धारणा जो एक ढांचे से पहले है, आपको "शुद्ध" पायथन में प्रोग्रामिंग के करीब लाएगी, यह निशान से थोड़ी दूर है। मैंने एक ही राय साझा की, और दोनों Django के साथ प्रयोग किया और केवल mod_wsgi का उपयोग किया। मुझे जो मिला वह साझा करने दो।

Mod_wsgi PEP 333 में पाए गए डब्लूएसजीआई मानक का कार्यान्वयन है। कार्यान्वयन और मानक के बीच भेद महत्वपूर्ण है। सबसे पहले, क्योंकि इसका मतलब है कि डब्लूएसजीआई अनुपालन अनुप्रयोग कार्यान्वयन में काम करेंगे। सबसे महत्वपूर्ण बात यह है कि डब्लूएसजीआई के लिए क्या करना है इसके बारे में कुछ महत्वपूर्ण बताता है। यही है, डब्लूएसजीआई का उद्देश्य ढांचे को लिखने के लिए एक मानक है।

एक रूपरेखा लेखक के लिए कार्यान्वयन की सादगी एक वेब अनुप्रयोग लेखक

और

WSGI के लक्ष्य के लिए है के लिए उपयोग में आसानी के रूप में एक ही बात नहीं है: पीईपी से एक नया वेब ढांचा बनाने के लिए मौजूदा सर्वरों और अनुप्रयोगों या ढांचे के आसान अंतःक्रिया की सुविधा प्रदान करें।

मैं यह नहीं कह रहा हूँ कि आप WSGI के साथ कुछ नहीं करना चाहिए, लेकिन आप एक रूपरेखा एक आवेदन की तुलना में अधिक लेखन होने की उम्मीद करनी चाहिए। यदि आप एक साधारण ढांचे को लिखने में रुचि रखते हैं this tutorial वह जगह है जहां मैंने शुरू किया था।

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

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