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