加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

django 如何创建一个自定义的404/500错误页面

发布时间:2020-12-15 17:14:23 所属栏目:大数据 来源:网络整理
导读:在您的主要内容下views.py添加您自己的以下两个视图的自定义实现,并设置模板404.html和500.html以及您想要显示的内容。 代码:views.py? from?django.shortcuts?import?render_to_responsefrom?django.template?import?RequestContextdef?handler404(reques

在您的主要内容下views.py添加您自己的以下两个视图的自定义实现,并设置模板404.html和500.html以及您想要显示的内容。

代码:views.py?

from?django.shortcuts?import?render_to_response
from?django.template?import?RequestContext


def?handler404(request,?*args,?**argv):
????response?=?render_to_response('404.html',?{},??????????????????????????????????context_instance=RequestContext(request))
????response.status_code?=?404
????return?response


def?handler500(request,?**argv):
????response?=?render_to_response('500.html',??????????????????????????????????context_instance=RequestContext(request))
????response.status_code?=?500
????return?response

handler404和handler500导出了Django字符串配置变量django/conf/urls/__init__.py。这就是上面配置的原因。

要使上述配置生效,您应该在urls.py文件中定义以下变量,并将导出的Django变量指向定义这些Django功能视图的字符串Python路径,如下所示:

在urls.py添加以下代码

from?django.conf.urls?import?(
handler400,?handler403,?handler404,?handler500
)

handler400?=?'my_app.views.bad_request'
handler403?=?'my_app.views.permission_denied'
handler404?=?'my_app.views.page_not_found'
handler500?=?'my_app.views.server_error'

Django 2.0的更新

在Django 2.0中更改了处理程序视图的签名:https: //docs.djangoproject.com/en/2.0/ref/views/#error-views

如果您使用上述视图,handler404将失败并显示以下消息:

“handler404()得到了一个意外的关键字参数'exception'”

在这种情况下修改您的视图,如下所示:

def?handler404(request,?exception,?template_name="404.html"):
????response?=?render_to_response("404.html")
????response.status_code?=?404
????return?response

疑难杂症:

不要忘记DEBUG必须设置为False才能使这些工作,否则,将使用正常的调试处理程序。

官方文档:https://docs.djangoproject.com/en/2.2/topics/http/views/#customizing-error-views

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读