2013-02-15 40 views
5

मैं सीख रहा हूं कि Django ढांचे में वेबसाइट कैसे विकसित करें। ऐसा कुछ है जो मुझे टेम्पलेट HTML फ़ाइल के बारे में नहीं समझता है।एचटीएमएल में घुंघराले-ब्रेस और प्रतिशत संकेत का क्या मतलब है?

मैंने देखा कि ट्यूटोरियल कोड में तर्क एम्बेड करने के लिए घुंघराले-ब्रेसेस (<% if ... %> <% endif %> आदि) का उपयोग करता है। लेकिन जब मैं एक गैर-Django सर्वर (अपाचे) में इस वाक्यविन्यास का उपयोग करने का प्रयास करता हूं तो इस वाक्यविन्यास का अर्थ नहीं लिया गया था और मैं अपने पेज पर अपने <% if ... %> देख सकता हूं।

मुझे नहीं पता कि यह क्यों है।

तो यह वाक्यविन्यास HTML नहीं बल्कि Django का एक हिस्सा नहीं है, इसलिए इसका अर्थ हो सकता है?

+9

@Mansfield php कोड है? पुनः प्रयास करें। –

+0

@ क्रिस। ओह :(मैं कुछ पागल कारणों के लिए चतुरता के बारे में सोच रहा था .... – Mansfield

+2

'<'/'>' "घुंघराले" ब्रेसिज़ नहीं हैं; '{'/'}' "घुंघराले" –

उत्तर

13

सबसे पहले और सबसे महत्वपूर्ण, Django टेम्पलेट भाषा के लिए सही टैग {% %} हैं, और <? ?> नहीं हैं।

और आप सही हैं कि यह Django का हिस्सा है। यह domain specific language का एक उदाहरण है, जो विकिपीडिया कहता है, एक विशेष कार्य के लिए एक भाषा का आविष्कार किया गया है। इस मामले में, Django templating भाषा को संभालने के लिए बनाया गया है, ठीक है, टेम्पलेट्स।

यह काम करता है क्योंकि Django भाषा की व्याख्या करने और इसकी समझ बनाने के लिए parser के साथ आता है। एक पार्सर एक स्ट्रिंग लेता है जो अन्यथा HTML या किसी अन्य भाषा में कोई अर्थ नहीं हो सकता है, जैसे कि {% block pasta%} और इसे सार्थक रूप में परिवर्तित करता है। इस मामले में यह अंततः एचटीएमएल आउटपुट करता है।

ऐसा होता है कि आप Django templating भाषा की व्याख्या करने के लिए किसी भी भाषा में अपना स्वयं का पार्सर लिख सकते हैं, या पूरी तरह से एक नई भाषा भी लिख सकते हैं। लेकिन इस तरह की कार्य में कठिनाई बढ़ जाती है क्योंकि आपकी भाषा अधिक जटिल हो जाती है, और आपके द्वारा चुने गए भाषा पर भी निर्भर करता है। PHP पार्सिंग में कुख्यात रूप से खराब है, जबकि पर्ल जैसी अन्य भाषाओं को बेहतर माना जाता है। आम तौर पर run a search के लिए यह बहुत आसान है और पहिया को फिर से आविष्कार करने के बजाय पूर्व-निर्मित पार्सर का उपयोग करें। हालांकि निश्चित रूप से है कि इसके बारे में जाने के लिए एक बहुत कम मजेदार तरीके :)

p.s. This might be of interest to you.

+0

में मदद करता है यह Django का हिस्सा नहीं है !!!! यह django का हिस्सा है: {%%} यह नहीं: <% %>। – santiagobasulto

+0

सच है, सच है। लेकिन अन्यथा मेरा जवाब सही है, हाँ? मैं उसे एक नोट जोड़ूंगा कि ऊपर दिए गए टैग क्यूई नहीं हैं ते सही – jmeas