python - examples - ¿Cómo devolver un archivo HTML estático como respuesta en Django?
django template tags (4)
Al usar HttpResponse
, solo puede enviar datos; si desea un archivo html, debe usar render
o render_to_response
de la siguiente manera ...
from django.shortcuts import render
def index(request):
return render(request, ''app/index.html'')
o
from django.shortcuts import render_to_response
def index (request):
return render_to_response(''app/index.html'')
No he descubierto cómo puedo presentar un sitio web con código HTML puro y / o HTML + JavaScript + CSS.
Intenté cargar un archivo HTML que simplemente dice: Hola mundo .
Sé que también puedo hacer eso con Django, pero luego quiero mostrar mi sitio web con CSS + JavaScript + HTML.
En el archivo de vistas ejecuto este código:
# 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)
Pero lo único que muestra el sitio web es:
>
No estás llamando al método de render
, ¿verdad?
Comparar:
template.render
template.render()
Si su archivo no es una plantilla django sino un archivo HTML simple, esta es la forma más fácil:
from django.shortcuts import render_to_response
def index (request):
return render_to_response(''app/index.html'')
Si sus archivos CSS y JS son estáticos, no use Django para servirlos, o los sirva como archivos estáticos.
Para su html, puede hacer lo mismo si es solo un archivo fijo que no tendrá ningún contenido dinámico. También puede usar vistas genéricas con TemplateView , solo agregue una línea como esta a su urls.py
:
url(r''^path/to/url'', TemplateView.as_view(template_name=''index.html'')),