2010-05-09 10 views
13

यदि कोई पृष्ठ केवल स्थिर HTML प्रदर्शित करने जा रहा है तो django में एक दृश्य मॉडल के बिना एक HTML पृष्ठ प्रस्तुत करने का कोई तरीका है?क्या मॉडल के बिना एचटीएमएल पेज प्रस्तुत करने का कोई तरीका है?

इसके अलावा, क्या मैं एक यूआरएल के बजाय एक HTML पृष्ठ पर रीडायरेक्ट कर सकता हूं? उदाहरण के लिए, बजाय ऐसा करने का लिए:

return HttpResponseRedirect('success.html') 

:

return HttpResponseRedirect('form/success/') 

मैं यह कर सकता है?

उत्तर

15

स्थिर HTML के लिए आप Flatpages app का उपयोग कर सकते हैं।

तुम भी प्रदान की गई टेम्पलेट्स (जो केवल स्थिर HTML हो सकता है) सेवा कर सकता है, लेकिन आप एक दृश्य की आवश्यकता होगी:

from django.shortcuts import render_to_response 
def some_view(request): 
    return render_to_response('sometemplate.html') 

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

18

आप जेनेरिक व्यू direct_to_template का उपयोग करके बिना किसी दृश्य के टेम्पलेट प्रस्तुत कर सकते हैं।

सफलता.html पर पुनर्निर्देशन django में जाने का तरीका नहीं है क्योंकि success.html के पास एक संबद्ध यूआरएल नहीं है। आपको हमेशा एक दृश्य के माध्यम से टेम्पलेट को एक यूआरएल में बांधना होगा (direct_to_template एक दृश्य है जो urls.py में conf से अपने सभी तर्क प्राप्त करता है, लेकिन यह अभी भी एक दृश्य है)

+13

'direct_to_template' को हटा दिया गया है; देखें [यह सवाल] (http://stackoverflow.com/a/15117932/662761) 1.5+ – Jack

+0

के लिए यह लिंक अब भी टूटा हुआ है। –

18

direct_to_template अब Django 1.8 में काम नहीं करता है। यहाँ कैसे 1.8 में यह करने के लिए, में है urls.py:

from django.views.generic import TemplateView 

urlpatterns = [ 
    url(r'^$', TemplateView.as_view(template_name="your_static.html"), name='whatever'), 
] 
+0

संस्करण 1.8 और ऊपर के लिए काम करता है। – shadow0359

+0

क्या हमें हर स्थिर एचटीएमएल के लिए ऐसा करने की ज़रूरत है? – Anupam

+0

@ अनुपमजैन हाँ, – Cheng

1

मैं बहुत यकीन है कि यह नहीं है ओपी करना चाहता था क्या कर रहा हूँ, लेकिन अगर किसी को एक दृश्य के बिना कुछ प्रस्तुत करना चाहता है, (एक ईमेल भेजने या अन्य एचटीएमएल कोड में जोड़ने के लिए), आप इसका उपयोग कर सकते हैं:

from django.template.loader import render_to_string 
html = render_to_string('template.html', params) 
संबंधित मुद्दे

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