Django 预置视图

serve

为了方便开发人员调试代码,Django预先设置了一个serve视图。serve视图可以用来查看任意路径下的文件,例如当用户上传完成后,使用server视图查看文件是否保存成功。

Serve视图的定义如下:

static.serve(request, path, document_root, show_indexes=False)

使用serve视图时可以直接在URLconf中调用,例如:

# www.coolcou.com
from django.conf import settings
from django.urls import re_path
from django.views.static import serve

# ... the rest of your URLconf goes here ...

if setting.DEBUG:
    urlpatterns += [
        re_path(r'^media/(?P<path>.*)$', serve,{
            'document_root':settings.MEDIA_ROOT,
        })
    ]

此时所有保存在MEDIA_ROOT路径下的文件都可以直接使用“/media/文件名”的方式进行访问。

Error视图

异常处理是开发人员一直需要进行的任务,由于HTTP异常固定就是几种,所有Django框架中对这些异常处理进行了封装。

1. HTTP 404视图
当视图程序抛出Http404异常时,Django会调用一个视图去处理它,默认时,这个视图是django.views.defaults.page_not_found()page_not_found()会在网页中输出简单的“Not Found”字样或者加载404.html。
page_not_found()视图的定义如下:

defaults.page_not_found(request, exception, template_name='404.html')

使用page_not_found()视图时需要注意以下几点:

  • 当Django无法找到匹配的URL时也会抛出404错误。
  • HTTP 404视图可以接收模板上下文中的变量。
  • 当DEBUG设置为True时HTTP 404视图将被禁用。

2. HTTP 500视图
当Django出现运行时异常时会调用HTTP 500视图,默认为django.views.defaults.server_error。server_error会在网页中输出简单的“Server Error”字样或者加载500.html。注意,HTTP 500视图不会向500.html传递任何变量,当DEBUG设置为True时HTTP 500视图将被禁用。

server_error视图的定义如下:

defaults.server_error(request, template_name='500.html')

3. HTTP 403视图
对于HTTP 403异常,Django默认的视图是django.views.defaults.permission_denied,该视图会在网页中输出“403 Forbidden”或者加载403.html。

permission_denied视图的定义如下:

defaults.permission_denied(request, exception, template_name='403.html')

4. HTTP 400视图

当出现SuspiciousOperation异常并且代码中没有进行处理时,Django会发生“bad request”异常。默认处理“bad request”请求的视图是django.views.defaults.bad_request。bad_request视图同样要求DEBUG=False。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!