Django中的View视图讲解

时间:2024-01-11 18:10:26

Django中的View视图(view.py)是负责处理用户请求和返回响应的逻辑。

视图函数或视图简而言之就是一个python函数,它接受一个web请求并返回一个Web响应。

此响应可以是网页的HTML内容,重定向或404错误,XML文档或图像。

一个简单的视图:

from django.http import HttpResponse

import datatime

def current_datetime(request):

  now = datatime.datatime.now()

  html = "<html><body>It is now %s.</body></html>"% now

  return HttpResponse(html)

一般不使用以上代码的形式,这里只为做返回页面理解用,如果把html标签都写到代码中是很麻烦的,我们可以这样写,在templates文件夹下创建一个html文件,然后给render()传递参数的形式来进行跳转。

返回错误

直接返回一个404,没有去加载404的模板页面

return HttpResponseNotFound(''<h1>page not  found</h1>)

可以直接返回一个status状态码

return HttpResponse(status=403)  #返回一个请求遭到拒绝的界面

返回一个404的错误页面

raise Http404(Poll does not exist) #如果不指定自己创建的404的界面,则返回默认的404界面,如果指定界面是在templates文件夹下创建404.html,系统会自动找到该界面。

注意:写404页面的时候需要注意一下几点

1、在settings.py配置文件中修改DEBUG=False

2、ALLOWED HOSTS=['*'] 指定下地址,*为接收所有

关于重定向

重定向就是通过各种方法将各种网络请求重新定个方向转到其他位置

from django.shortcuts import redirect

#redirect重定向一个界面 reverse反向解析url地址

return redirect(reverse(‘userindex’))

反向解析:reverse()就是反向解析的函数,参数为子路由的url(r'^$',views.index,name="myhome_index")   name属性的值,这样可以在views.py中通过reverse(myhome_index)就找到了views.index,这就叫反向解析。 使用reverse()需导入包  from django.core.urlresolvers import reverse

reverse(‘userindex’) 返回的是路径

#执行一段js代码,用js进行重定向

return HttpResponse('<script>alert("添加成功");location.href="/userindex";</script>')

#加载一个提醒信息的跳转页面

context={}