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。
酷客教程相关文章:
评论前必须登录!
注册