2009-08-21 11 views
11

मैं वेब अनुप्रयोगों के लिए PHP से पायथन का उपयोग करने से स्विच करने की सोच रहा हूं, लेकिन मैं सोच रहा था कि क्या पाइथन PHP के रूप में HTML में और बाहर बुनाई के रूप में उपयुक्त है। अनिवार्य रूप से, मुझे यह पता लगाने के लिए <? and ?> का उपयोग करने के लिए बहुत आसान/अंतर्ज्ञानी लगता है, जहां मैं चाहता हूं, और फिर मैं अपने HTML को व्यवस्थित/व्यवस्थित करने के लिए स्वतंत्र हूं। क्या यह पाइथन के साथ ऐसा करना आसान है? मूल रूप से, सवाल यह है: आसानी से उपयोग के संदर्भ में PHP के साथ एचटीएमएल के साथ काम करने के समान पाइथन के साथ एचटीएमएल के साथ काम कर रहा है?PHP की तुलना में HTML के साथ पाइथन 'प्रवाह' कितनी अच्छी तरह से करता है?

संपादित करें: मैं मदद करने के लिए भ्रम की स्थिति से कुछ स्पष्ट नीचे टिप्पणी में लगता है, मैं अंतर्ज्ञान है कि पीएचपी सामने के अंत के लिए एक वेबसाइट का, प्रस्तुति हिस्सा आयोजन में अजगर से बेहतर होगा, जबकि अजगर होगा मिल बैक एंड भाग (वास्तविक प्रोग्रामिंग ...) पर एक्सेल। सवाल यह है कि - क्या मैं गलत हूं और क्या पाइथन फ्रंट-एंड के लिए PHP जितना अच्छा है?

मेरा संपादन संपादित करें: आह, मैं अपने तरीकों की त्रुटि को समझना शुरू कर रहा हूं; ऐसा लगता है कि मैंने अनजाने में कुछ बुरी आदतों को उठाया है। मैं हमेशा सोचा था कि यह (पढ़ें: मानक) ठीक था, उदाहरण के लिए, छद्म कोड में पीएचपी है निम्न करें:

If user has filled out form: 
    print this html 
else: 
    print this html 

जब वास्तव में मैं एक सितम्बर में पीएचपी साथ, एक HTML टेम्पलेट का उपयोग करना चाहिए। फ़ाइल। और उस परिदृश्य में, PHP और पायथन एक भी लड़ने वाले मैदान पर हैं और यह शायद मेरी अपनी प्रोग्रामिंग भाषा स्वाद के लिए है।

+2

पुन: संपादित करें संपादित करें। यह बहुत सम्मानजनक और ताज़ा है कि आप यह देखने के इच्छुक हैं कि प्रोग्रामिंग शुरू करते समय कोई भी सीखता है जब परियोजनाएं बड़े पैमाने पर नहीं होतीं/उतनी ही अधिक होती हैं जितनी परियोजनाएं बड़ी होती हैं :) –

उत्तर

24

आप आसानी से PHP और पायथन की तुलना नहीं कर सकते हैं।

PHP एक वेब प्रसंस्करण ढांचा है जिसे विशेष रूप से अपाचे प्लग-इन के रूप में डिज़ाइन किया गया है। इसमें HTTP प्रोटोकॉल हैंडलिंग के साथ-साथ प्रोग्रामिंग भाषा भी शामिल है।

पायथन एक प्रोग्रामिंग भाषा "बस" है। पाइथन को अपाचे में प्लग करने के लिए कई पायथन वेब ढांचे हैं। mod_wsgi, सीजीआई के साथ-साथ परिष्कार की विभिन्न डिग्री के वेब अनुप्रयोग ढांचे हैं।

"जहां मैं चाहता हूं PHP को रखने के लिए उपयोग" वास्तव में पाइथन को वेब अनुप्रयोगों के निर्माण के लिए भाषा के रूप में न्याय करने का एक उचित तरीका नहीं है।

एक रूपरेखा (जैसे Pylons, Django, TurboGears, आदि) डेटाबेस का उपयोग से प्रोग्रामिंग से प्रस्तुति (एचटीएमएल टेम्पलेट्स) अलग करती है। PHP एक वेब अनुप्रयोग के सभी तीन पहलुओं को एक ही चीज़ में जोड़ता है - PHP भाषा।

यदि आप PHP से पायथन पर स्विच करना चाहते हैं तो आपको निम्न कार्य करना होगा।

  1. कोई पूर्वकल्पना, कोई पूर्वाग्रह, कुछ भी नहीं शुरू करें।

  2. आपके द्वारा चुने गए ढांचे पर ट्यूटोरियल के साथ ताजा प्रारंभ करें। आप जो भी PHP कर रहे हैं उसकी तुलना किए बिना संपूर्ण ट्यूटोरियल करें।

  3. आपके द्वारा चुने गए ढांचे के साथ अपनी चुनी समस्या को हल करने के लिए ताजा प्रारंभ करें। आप जो भी PHP कर रहे हैं उसकी तुलना किए बिना पूरी चीज बनाएं।

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

जो लोग Python - substr की तरह सवाल पूछने, java and python equivalent of php's foreach($array as $key => $value), what is python equivalent to PHP $_SERVER? कभी कभी अजगर करने के लिए अपने PHP ज्ञान मैप करना चाहते हैं। ऐसा मत करो।

पायथन वेब ढांचे का उपयोग शुरू करने का एकमात्र तरीका पूरी तरह ताजा शुरू करना है।


संपादित

सभी अजगर वेब चौखटे उनके टेम्पलेट इंजन में कुछ "प्रस्तुति तर्क" क्षमताएं होती हैं। यह एक "फिसलन ढलान" है जहां आप आसानी से एक साधारण टेम्पलेट को गंदगी में बदल सकते हैं।जाहिर है, एक साधारण {% if %} और {% for %} निर्माण HTML टेम्पलेट के सशर्त और दोहराव वाले तत्वों को सरल बनाने में सहायक होते हैं।

इसके अलावा, यह जानना शुरू हो जाता है कि टैग भाषा में कितनी शक्ति डाली जानी चाहिए।

एक चरम पर हमारे पास PHP/JSP और संबंधित तकनीकें हैं जहां टेम्पलेट इंजन सब कुछ कर सकता है (और अक्सर करता है)। यह एक गड़बड़ में बदल जाता है। क्या मध्य Jinja और Mako है जहां टेम्पलेट इंजन एक बड़ा सौदा कर सकता है। दूसरी तरफ Django है जहां टेम्पलेट इंजन प्रस्तुति और प्रसंस्करण तर्क mingling से बचने के लिए जितना संभव हो उतना छोटा करता है।

+0

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

+0

@hatorade: templating के लिए अलग-अलग दृष्टिकोण हैं, जो सर्वोत्तम है आपकी विशिष्ट आवश्यकताओं पर निर्भर करता है। मुझे लगता है कि शुद्ध PHP templating के लिए सबसे समान बात मको टेम्पलेट पुस्तकालय है। इसमें एक टेम्प्लेट भाषा है जो भाषा के प्रोग्रामेटिक भाग के लिए पाइथन भाषा का उपयोग करती है जो इसे वास्तव में शक्तिशाली और सीखने में आसान बनाती है यदि आप पहले से ही पाइथन जानते हैं। –

2

ठीक है। सबसे पहले, आपको पता होना चाहिए कि प्रस्तुतिकरण के साथ मिश्रण कोड खराब अभ्यास माना जाता है। यद्यपि आप टेम्पलेट इंजन का उपयोग कर सकते हैं जो आपको Mako जैसे एचटीएमएल के अंदर किसी भी पायथन कोड को मिश्रित करने देता है, आमतौर पर पाइथन वेब लाइब्रेरीज़ और फ्रेमवर्क एक पायथन स्क्रिप्ट फ़ाइल पर लेखन तर्क और परिणाम प्रस्तुत करने के लिए एक अलग HTML टेम्पलेट का पक्ष लेते हैं।

उस ने कहा, पायथन PHP की तुलना में बहुत आसान है।

लेकिन आप केवल पाइथन में उत्पादक हो सकते हैं यदि आप प्रोग्रामिंग के तरीके सीखने के इच्छुक हैं।

यदि आप PHP चाहते हैं, तो PHP की तुलना में कुछ भी PHP नहीं है, और पायथन अलग-अलग दृष्टिकोण लेता है, इसलिए शायद आप निराश होने जा रहे हैं क्योंकि चीजें आपके जैसी नहीं हैं।

हालांकि, यदि आप चीजों को करने का एक नया, बेहतर तरीका खोज रहे हैं, तो पाइथन आपके लिए है।

basic python tutorial पढ़ने के बाद, pylons जैसे कुछ पायथन वेब ढांचे को आजमाएं और स्वयं को देखें।

+1

@ नोस्क्लो: क्या आप इसका मतलब बढ़ा सकते हैं प्रेजेंटेशन के साथ कोडिंग कोड? मैं बस कुछ PHP डालने का जिक्र कर रहा था, फिर बिना किसी प्रतिबंध के एचटीएमएल डालने के लिए, जैसे कि PHP और HTML सही ढंग से टैब्ड किया गया था। हालांकि, मैं पाइथन के साथ सोच रहा था कि मुझे पाइथन टैब मानकों को फिट करने के लिए HTML को टैब करना पड़ सकता है। लेकिन यह दिलचस्प है कि पायथन और एचटीएमएल आम तौर पर विभिन्न फाइलों में विभाजित होते हैं। मुझे यह नहीं पता था; अनुमान है कि मुझे कुछ और पढ़ना चाहिए। – sepiroth

+0

डोमेन तर्क के साथ प्रस्तुति मिश्रण खराब अभ्यास है। लेकिन यदि आप डोमेन से आने वाले डेटा को आउटपुट नहीं कर रहे हैं, तो गतिशील भाषा का उपयोग शुरू करने का क्या मतलब है? मुझे लगता है कि वह पूछ रहा था कि एक HTML व्यू पेज पर पायथन से डेटा आउटपुट करना कितना आसान और स्वाभाविक है। –

+1

एक फ़ाइल लिखने के बजाय, केवल कोड लिखें जो इनपुट और प्रस्तुति से व्यवसाय तर्क को अलग करता है, प्रत्येक के स्वतंत्र विकास, परीक्षण और रखरखाव की अनुमति देता है। कोड जो कुछ पाइथन फ़ाइल में करता है। एचटीएमएल में कुछ तत्वों को प्रस्तुत करने के लिए कुछ प्लेसहोल्डर्स हैं, जैसे कि कई तत्वों को प्रस्तुत करना। – nosklo

0

हां, PHP इस तरह से उपयोग करना आसान है। लेकिन यह अनुशंसित तरीका नहीं है! बेहतर है कि आप टेम्पलेट का उपयोग करें। वास्तव में, आप PHP के साथ भी इसका उपयोग कर सकते हैं।

1

सबसे पहले: HTML से प्रोग्रामिंग भाषा में भागना अच्छा होता है जब आप छोटे हैक्स करते हैं। एक वास्तविक उत्पादन वेब अनुप्रयोग के लिए मैं कभी ऐसा नहीं करता।

एचटीएमएल में प्रोग्रामिंग भाषा में मिश्रण करना अप्रैक्टिकल है। किसी प्रकार की templating भाषा का उपयोग करना बेहतर है। किसी भी अन्य भाषा की तुलना में पाइथन में इंडेंटेशन कोई मुद्दा नहीं है।

लेकिन, अपने वास्तविक प्रश्न का उत्तर देने के लिए: यह वही है। पाइथन टेम्पलेटिंग भाषाएं हैं जो आपको पाइथन में भी भागने की अनुमति देती हैं, क्या आप चाहें। मैं आपको सलाह दूंगा कि आप नहीं करते हैं, लेकिन आप कर सकते हैं।

2

यदि आप एक एमवीसी वेब ढांचे पर प्रगति कर रहे थे, तो आप पाएंगे कि वास्तव में PHP और पायथन दोनों ही HTML का उपयोग करते हैं।

डेटा को हथियाने के लिए मॉडल का उपयोग करके अनुरोध के आसपास का काम नियंत्रकों में किया जाता है। परिणाम तब एक दृश्य में पोस्ट किए जाते हैं, जो वास्तव में HTML का एक टेम्पलेट है।

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

PHP में यह अक्सर alternative PHP syntax के साथ किया जाता है।

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