Django建站历程:(二十)自定义网站404界面

2019年8月12日 Jerry 5052 2021年1月17日

       站点访问的过程中难免会因为不小心而访问到一些不存在的链接404或网站突然抽风导致服务器错误500,但django默认的错误页面过于简单,所以我们需要自定义404、500等页面,提升用户体验。

       首先,我们要明白如果我们的 django 工程的Debug如果是开的话,404是显示如下的界面:

       会显示所有的url出来,其实我们部署过程中是要把debug关掉的,正常没有自定义的界面应该如下:

       看起来很挫,也不是那么的友好。如何自定义我们想要的404界面呢?简单几步即可搞定。

一、自定义404.html

       我们可以在 /blog/templates/blog/ 下创建一个404.html界面,内容就是你自己想搞得内容。我的是如下的内容:

{% extends "blog/base.html" %}

{% block base_content %}

  <h1>这是Jerry自定的404界面</h1>

{% endblock %}

二、创建返回函数

       在 /blog/views.py 创建几个返回函数,用于404、500等界面的返回,代码如下:

from django.shortcuts import render_to_response

def page_not_found(request, exception):
    # 刚刚创建的404.html  路径要写对
    response = render_to_response("blog/404.html", {})
    response.status_code = 404
    return response

'''
下面是处理服务器错误 500 的函数,少一个request 参数
def page_error(exception):
    response = render_to_response("blog/500.html", {})
    response.status_code = 500
    return response
'''

三、添加全局路由

       在全局路由文件 urls.py 中添加如下代码,要注意是全局的 urls.py ,不是某个app的路由:

from blog.views import page_not_found

# 全局404
handler404 = page_not_found

# 全局403
#handler403 = ...

# 全局500
#handler500 = ...

       最后 ctrl-F5 强制刷新下界面,就可以看到我们的404界面已经成功自定义啦!其他的403 500 等界面都是一样的哦。


《django 建站历程系列文章》

(一)服务器的选取与环境准备

(二)创建第一个project和app

(三)创建并显示博客的主页导航栏

(四)django-allauth实现用户登陆

(五)django-allauth实现第三方登陆

(六)使用bootstrap3美化登陆界面

(七)添加用户签名字段

(八)自定义用户头像

(九)发布我的第一篇博客

(十)CKEditor的配置使用

(十一)ajax实现文章添加评论

(十二)signal自动消息通知

(十三)基于django-haystack的全文搜索

(十四)配置SSL证书实现网站HTTPS访问

(十五)免费开启七牛云CDN加速

(十六)particles 粒子背景插件

(十七)集成 xadmin2 后台管理

(十八)RestFramework 编写API

(十九)Nginx+uwsgi 部署 django

(二十)自定义网站404界面

(二一)jwt为API添加身份认证

jerrycoding 博客源码大公开


原创文章,转载请注明出处: https://jerrycoding.com/article/site_building_20

微信
jerry微信赞助
支付宝
jerry支付宝赞助

您尚未登录,暂时无法评论。请先 登录 或者 注册

0 人参与 | 0 条评论