> 文章列表 > day1-Django 视图

day1-Django 视图

day1-Django 视图

1.基础的视图

from django.http import HttpResponse
import datetimedef current_datetime(request):now = datetime.datetime.now()html = "<html><body>It is now %s.</body></html>" % nowreturn HttpResponse(html)
  • 首先,我们从 django.http 模块导入类 HttpResponse ,以及 Python 的 datetime 库。

  • 然后,我们定义一个名为 current_datetime 的函数。这是一个视图函数。每个视图函数都将 HttpRequest 对象作为第一个参数,通常名为 request 。

    注意视图函数名称无关紧要;它不需要以特定的名称来让 Django 识别它。我们在这里命名 current_datetime ,因为这个名字可以清楚的表示它的用途。

  • 视图返回一个包含生成的响应的 HttpResponse 对象。每个视图函数都要返回 HttpResponse 对象。

 2.根据HttpResponse的子类返回错误信息

from django.http import HttpResponse, HttpResponseNotFounddef my_view(request):# ...if foo:return HttpResponseNotFound('<h1>Page not found</h1>')else:return HttpResponse('<h1>Page was found</h1>')

   这些子类封装了响应的状态码

3.自定义返回的状态码

from django.http import HttpResponsedef my_view(request):# ...# Return a "created" (201) response code.return HttpResponse(status=201)

4.自定义错误页面

  从源码中可以知道 django默认有这四种错误码,所以需要重新指定其所映射的函数.

handler400 = defaults.bad_request
handler403 = defaults.permission_denied
handler404 = defaults.page_not_found
handler500 = defaults.server_error
  •    设置setting.py文件debug=False
  •     定义错误页面的模板文件 404.html、400.html、403.html和500.html
  •     在项目(非子应用)的url.py 文件中配置好 handler对应的视图函数
    from django.conf.urls import handler404
    from child.views import  page_not_found
    #错误页面400
    handler404 = page_not_found
  •     定义错误页面处理视图
    def page_not_found(request,exception):return render(request,'404.html')

 同理其他错误处理