当我的网站正式发布之后,用户并不都是按照你的意愿去发送各种请求,那么就会经常发生 404,500,403等等错误,这时我们是不希望用户没看到这样的画面的.


所以我们把去设置 setting 文件,debug True 改成 debug False.
然后,去自定义错误请求的页面。看一下官方文档:https://docs.djangoproject.com/en/1.8/topics/http/views/
在 urls.py 中添加如下代码:
1
2
3
4
handler404 = 'blog.views.my_custom_page_not_found_view'
handler500 = 'blog.views.my_custom_error_view'
handler403 = 'blog.views.my_custom_permission_denied_view'
handler400 = 'blog.views.my_custom_bad_request_view'

接着去写每种情况对应的方法,在 views.py 中添加方法:

1
2
def my_custom_page_not_found_view(request):
return render(request,'404.html')

在 templates 文件夹下新建 404.html 文件,把你想呈现在用户面前的 404 网页写好,搞定了。
去测试一下,随便在主页地址后加一个没有的没有定义的地址,转到,结果的确是自己定义的 404 页面。

好,再去访问一下正常的主页,结果,,,你可能发现(你的正常不正常,反正我的是不正常),原来可以正常访问的网页也统统显示刚刚定义 404 页面。这可得了!

这时看看服务器上可能已经打印了错误的 log ,说是 debug False 的情况下,你必须配置一下

1
ALLOWED_HOSTS=[]

好,去配置一下,写成这样:

1
ALLOWED_HOSTS="*"

这下应该正常了。。。吗?
再次打开自己的网站,发现网站样子回到了解放前啊有木有!没有了 css 样式!!!

很好,如果你也一样遇到了,太好了。这个解决方案有很多,这里我们就来最简单的,停掉 server,这样来运行:

1
python manage.py runserver --insecure

快看一下,好了,终于恢复正常了。