如果页面只显示静态html,有没有办法在django中没有视图模型的情况下呈现html页面?
另外,我可以重定向到HTML页面而不是网址吗?例如,而不是这样做:
return HttpResponseRedirect('form/success/')
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
return HttpResponseRedirect('success.html')
Run Code Online (Sandbox Code Playgroud)
?
Che*_*eng 21
direct_to_template在Django 1.8中不再有效.以下是如何在urls.py中的1.8中执行此操作:
from django.views.generic import TemplateView
urlpatterns = [
url(r'^$', TemplateView.as_view(template_name="your_static.html"), name='whatever'),
]
Run Code Online (Sandbox Code Playgroud)
Gui*_*vin 19
您可以使用通用视图渲染没有视图的模板direct_to_template
.
重定向到success.html不是django的方法,因为success.html没有关联的URL.您总是必须通过视图将模板绑定到URL(direct_to_template是一个视图,它从urls.py中的conf获取其所有参数,但它仍然是视图)
Dav*_*cic 15
对于静态HTML,您可以使用Flatpages应用程序.
您还可以提供渲染模板(可能只包含静态HTML),但您需要一个视图:
from django.shortcuts import render_to_response
def some_view(request):
return render_to_response('sometemplate.html')
Run Code Online (Sandbox Code Playgroud)
关于重定向,基本上你不能通过给出文件名重定向到HTML页面,即使它是由Web服务器静态提供的,你仍然会使用指向该文件的URL.
小智 7
我很确定这不是 OP 想要做的,但是如果有人想在没有视图的情况下渲染某些内容(用于发送电子邮件或附加到其他 html 代码),您可以使用:
from django.template.loader import render_to_string
html = render_to_string('template.html', params)
Run Code Online (Sandbox Code Playgroud)
小智 5
使用 lambda 函数。
urlpatterns = [
path('', lambda request: render(request, 'homepage.html'))
]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30356 次 |
最近记录: |