Django 有没有一种方法可以在没有视图模型的情况下呈现html页面?

Django 有没有一种方法可以在没有视图模型的情况下呈现html页面?,django,Django,如果一个页面只显示静态html,有没有一种方法可以在不使用django视图模型的情况下呈现html页面 另外,我可以重定向到html页面而不是url吗?例如,不要这样做: return HttpResponseRedirect('form/success/') 我可以这样做吗: return HttpResponseRedirect('success.html') ?对于可以使用的静态HTML 您还可以提供呈现模板(只能包含静态HTML),但您需要一个视图: from django.shor

如果一个页面只显示静态html,有没有一种方法可以在不使用django视图模型的情况下呈现html页面

另外,我可以重定向到html页面而不是url吗?例如,不要这样做:

return HttpResponseRedirect('form/success/')
我可以这样做吗:

return HttpResponseRedirect('success.html')

对于可以使用的静态HTML

您还可以提供呈现模板(只能包含静态HTML),但您需要一个视图:

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

关于重定向,基本上你不能仅仅通过提供文件名重定向到HTML页面,即使它是由web服务器静态提供的,你仍然会使用指向该文件的URL。

你可以使用通用视图在没有视图的情况下呈现模板


在django中,重定向到success.html不是一个好办法,因为success.html没有关联的URL。您必须始终通过视图将模板绑定到url(direct_to_template是一个从url.py中的conf获取其所有参数的视图,但它仍然是一个视图)

direct_to_模板在Django 1.8中不再起作用。下面是如何在1.8中的url.py中执行此操作:

from django.views.generic import TemplateView

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

我很确定这不是OP想要做的,但是如果有人想要在没有视图的情况下呈现某些内容(用于发送电子邮件或附加到其他html代码),您可以使用以下方法:

from django.template.loader import render_to_string
html = render_to_string('template.html', params)
使用lambda函数

urlpatterns = [
    path('', lambda request: render(request, 'homepage.html'))
]   

direct\u to\u模板
已被弃用;请参阅1.5+,该链接现在也断开了。我们需要为每个静态HTML都这样做吗?