2013-01-18 17 views
12

मुझे पता नहीं चला है कि मैं शुद्ध HTML कोड और/या HTML + जावास्क्रिप्ट + सीएसएस के साथ एक वेबसाइट कैसे पेश कर सकता हूं।Django में एक प्रतिक्रिया के रूप में एक स्थिर HTML फ़ाइल कैसे वापस करें?

मैंने एक HTML फ़ाइल लोड करने का प्रयास किया है, बस यह कहता है: हैलो वर्ल्ड

मैं जानता हूँ कि मुझे लगता है कि Django के साथ भी, लेकिन बाद में मैं सीएसएस + जावास्क्रिप्ट + HTML के साथ मेरी वेबसाइट प्रदर्शित करना चाहते हैं कर सकते हैं।

विचारों फ़ाइल में मैं इस कोड को चलाएँ:

# Create your views here. 
from django.http import HttpResponse 
from django.template import Context, loader 

def index(request): 
    template = loader.get_template("app/index.html") 
    return HttpResponse(template.render) 

लेकिन केवल एक चीज वेबसाइट प्रदर्शित करता है:

>

+1

उत्पादन में आप सर्व करने के लिए Django का उपयोग कर से बचने के लिए चाहता हूँ ई स्थैतिक संपत्तियां। साथ ही, https://docs.djangoproject.com/en/1.8/howto/static-files/ पर एक नज़र डालें। कोड आपके द्वारा पोस्ट की एक मध्यवर्ती कदम आप गतिशील व्यवहार कि एक बात है जोड़ने से पहले ले जा रहे हैं है - लेकिन एप्लिकेशन/index.html सही मायने में एक स्थिर html पृष्ठ से आप मेरी राय में एक स्थिर संपत्ति के रूप में यह काम करना चाहिए है अगर। – chucksmash

उत्तर

13

आपके पास कॉल नहीं कर रहे हैं वहाँ render विधि , क्या आप?

की तुलना करें:

स्थिर अपने CSS और JS फ़ाइलों हैं
from django.shortcuts import render_to_response 

def index (request): 
    return render_to_response('app/index.html') 
+0

आह हाँ सही धन्यवाद, मिस वाक्य रचना की जाँच ... वहाँ तो कुछ भी बाकी है वहाँ कुछ भी नहीं तो मैं जब मैं Django + एचटीएमएल + जावास्क्रिप्ट + सीएसएस का उपयोग करना चाहते करने के लिए ध्यान देना होगा है ?? (। Js/सीएसएस minification और कैश पर्दाफाश के लिए): – user1990524

+1

'static' एप्लिकेशन (builtin) और' webassets' पर पढ़ें – ustun

14

यदि आपकी फ़ाइल एक Django टेम्पलेट लेकिन एक सादे html फ़ाइल नहीं है, यह सबसे आसान तरीका है Django का उपयोग करने के लिए उनका उपयोग नहीं करते हैं, या serve them as static files

अपने एचटीएमएल के लिए आप ऐसा ही कर सकते हैं यदि यह केवल कुछ निश्चित फ़ाइल है जिसमें कोई गतिशील सामग्री नहीं होगी। तुम भी TemplateView साथ generic views इस्तेमाल कर सकते हैं, बस अपने urls.py को इस तरह एक पंक्ति जोड़ें:

url(r'^path/to/url', TemplateView.as_view(template_name='index.html')), 
+0

जब मैं यह कर, ब्राउज़र, html फ़ाइल जो है की सामग्री प्रदर्शित करता है

हैलो दुनिया

some_text user1990524

6

तो डॉन:

template.render 

template.render() 
+0

यह मैं Django से पृष्ठ को लॉन्च करने की अनुमति दी, लेकिन पाठ के अंदर {{}} टेम्पलेट ऑपरेटर नहीं दिखाई दे रहा थे।मैं एचटीएमएल पेज के अंदर कोणीय जेएस का उपयोग कर रहा था यह डीजेंगो टेम्पलेट {{ऑपरेटरों के साथ विवादित था। मैंने पोस्ट से सिफारिश का उपयोग करके इस मुद्दे को हल किया http://stackoverflow.com/questions/8302928/angularjs-with-django-conflicting-template-tags – Vijay

5

HttpResponse का उपयोग कर आप केवल डेटा भेज सकते हैं, यदि आप फिर फ़ाइल HTML करने के लिए आप से render या render_to_response उपयोग करने के लिए है चाहता हूँ तक निम्नलिखित तरीके ...

from django.shortcuts import render 

def index(request):  
    return render(request, 'app/index.html') 

या

from django.shortcuts import render_to_response 

def index (request): 
    return render_to_response('app/index.html')