2008-09-14 11 views
23

क्या Django के पास सामान्य HTML मार्कअप उत्पन्न करने के लिए कोई टेम्पलेट टैग है? उदाहरण के लिए, मुझे पता है कि मैं एक यूआरएलक्या Django में HTML सहायक हैं?

{% url mapper.views.foo %} 

का उपयोग कर प्राप्त कर सकते हैं लेकिन यह सिर्फ मेरे यूआरएल देता है और नहीं लिंक बनाने के लिए एचटीएमएल कोड। क्या Django के पास रेल के लिंक के समान कुछ है? मुझे django-helpers मिला लेकिन चूंकि यह एक आम बात है, मैंने सोचा कि Django में कुछ अंतर्निहित होगा।

उत्तर

26

नहीं ऐसा नहीं है।

James Bennett ने कुछ समय पहले रेल के अंतर्निहित जावास्क्रिप्ट सहायकों के संबंध में similar question का उत्तर दिया।

यह वास्तव में असंभव है कि Django में कभी भी 'सहायक' कार्यक्षमता अंतर्निहित होगी। कारण, अगर मैं सही ढंग से समझता हूं, तो चीजों को loosely coupled रखने के Django के मुख्य दर्शन के साथ करना है। अंतर्निहित इस तरह की सहायक कार्यक्षमता होने से डीजेगो को एक विशिष्ट जावास्क्रिप्ट लाइब्रेरी या (आपके मामले में) HTML दस्तावेज़ प्रकार के साथ जोड़ना होता है।

ईजी। क्या होता है जब/जब एचटीएमएल 5 आखिरकार कार्यान्वित किया जाता है और Django HTML 4 या XHTML मार्कअप उत्पन्न कर रहा है?

यह कहकर कि, Django का टेम्पलेट ढांचा वास्तव में लचीला है, और यह write your own tags/filters के लिए बहुत मुश्किल नहीं होगा जो आप चाहते थे। मैं ज्यादातर खुद को एक डिजाइनर हूं, और मैं एक जोड़े की तरह काम करने वाले कुछ कस्टम टैग्स को एक साथ रखने में सक्षम हूं।

+1

यह रेलवे सहायकों के लिए क्या गलत उपयोग किया जाता है, इसकी गलतफहमी की तरह दिखता है, उनके पास जावास्क्रिप्ट या किसी भी चीज़ के साथ जरूरी नहीं है अजाक्स बिल्कुल। रेल गाइड http://guides.rubyonrails.org/getting_started.html उन्हें "विचारों के लिए पुन: प्रयोज्य कोड के छोटे स्निपेट" प्रदान करने के रूप में वर्णित करता है। मुझे मिली एक ब्लॉग पोस्ट http://railspikes.com/2008/8/22/how-to-fix-your-rails-helpers उन्हें मार्कअप जेनरेटर के रूप में संदर्भित करता है। – Sam

+0

मैं 4 साल के लिए django का उपयोग कर रहा हूं, और रेल के लिए रेल 1. रेल मददगार शॉर्टकट हैं और मैंने Django का उपयोग करते समय कभी उनकी आवश्यकता महसूस नहीं की। – nemesisdesign

2

ऐसा लगता है कि वे निर्मित हैं लेकिन यहां कुछ स्निपेट हैं। ऐसा लगता है कि यह इन सहायकों को बनाने के लिए बहुत आसान हो जाएगा:

http://www.djangosnippets.org/snippets/441/

1

यहां एक list of all template tags and filters built into Django है। Django कोर में रेल के रूप में ज्यादा HTML सहायक नहीं हैं, क्योंकि Django योगदानकर्ता मानते हैं कि वेब डेवलपर HTML को बहुत अच्छी तरह से जानता है। जैसा कि शनिवारप्लेस द्वारा बताया गया है, एजेक्स हेल्पर्स को Django में जोड़ा जाने की संभावना बहुत कम है, क्योंकि इससे एक विशिष्ट जावास्क्रिप्ट लाइब्रेरी के साथ Django को जोड़ना होगा।

Django में write your own template tags के लिए यह बहुत आसान है (अक्सर आपको केवल एक फ़ंक्शन को परिभाषित करने की आवश्यकता होती है, जो रेल के समान होती है)। आप एक या दो दिन के दौरान Django में अधिकांश रेल मददगारों को फिर से लागू कर सकते हैं।

-1

यह सीधे प्रश्न का उत्तर नहीं देगा, लेकिन फिर टेम्पलेट में <a href="{% url mapper.views.foo %}">foo</a> का उपयोग क्यों नहीं कर रहे हैं?

+1

कॉस रूबी/रेल डेवलपर्स पाइथोनिस्टस की तुलना में आलसी हैं – nemesisdesign

0

मैं शर्त लगाता हूं कि सामान्य एचटीएमएल की कोई सहमति होगी, तो पूर्णता के लिए केवल हेल्पर्स मॉड्यूल भी होगा (या क्योंकि दूसरों के पास यह है)। ;)

उसके अलावा, Django टेम्पलेट प्रणाली एचटीएमएल लोग, जो पहले से ही कैसे p, img और a टैग लिखने के लिए जानते हैं और किसी भी सहायकों उस के लिए की जरूरत नहीं है के लिए ज्यादातर किया जाता है। दूसरी ओर पाइथन डेवलपर्स हैं, जो कोड लिखते हैं और परवाह नहीं करते हैं कि वे संदर्भ में रखे गए चर को div या span ( प्रतिमानों के अलगाव) का पूर्ण उदाहरण है। यदि आपको इन दोनों दुनिया में शामिल होने की आवश्यकता है, तो आपने इसे अपने आप से किया है (या दूसरे के कोड की तलाश करें)।

21

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

यही कारण है कि टेम्पलेट्स और एसएसआई उपयोगी हैं - क्योंकि लोग नहीं जानते कि एचटीएमएल को उनके शीर्षकों और पाद लेखों में कैसे लिखना है, लेकिन कभी-कभी आप इसे एक बार लिखना चाहते हैं।

ईजी। क्या होता है जब/जब HTML 5 अंततः कार्यान्वित किया गया है और Django HTML 4 या XHTML मार्कअप उत्पन्न कर रहा है?

वही बात जो तब होती है जब HTML 5 लागू होता है और आपके सभी टेम्पलेट दोहराए गए HTML को दोहराए जाते हैं, बहुत आसान छोड़कर।

अन्य पदों ने पहले से ही प्रश्न का उत्तर दिया है, custom template tags पर दस्तावेज़ों से लिंक; आप अपने स्वयं के निर्माण के लिए टैग और फ़िल्टर का उपयोग कर सकते हैं, लेकिन नहीं, इसमें कोई भी निर्मित नहीं है।

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