diff --git a/DjangoBlog/urls.py b/DjangoBlog/urls.py index 66e522f..8ed7d7f 100644 --- a/DjangoBlog/urls.py +++ b/DjangoBlog/urls.py @@ -31,6 +31,9 @@ sitemaps = { 'static': StaticViewSitemap } +handler404 = 'blog.views.page_not_found_view' +handler500 = 'blog.views.server_error_view' + urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'', include('blog.urls', namespace='blog', app_name='blog')), diff --git a/blog/tests.py b/blog/tests.py index 91b76f5..5df565e 100644 --- a/blog/tests.py +++ b/blog/tests.py @@ -124,3 +124,6 @@ class ArticleTest(TestCase): self.assertEqual(rsp.status_code, 200) SimpleUploadedFile() """ + def test_errorpage(self): + self.client.get('/eee') + self.client.get('/refresh_memcache') diff --git a/blog/views.py b/blog/views.py index cb2d7c2..8009067 100644 --- a/blog/views.py +++ b/blog/views.py @@ -254,3 +254,19 @@ def refresh_memcache(request): return HttpResponseForbidden() except Exception as e: return HttpResponse(e) + + +def page_not_found_view(request): + url = request.get_full_path() + return render(request, 'blog/error_page.html', + {'message': '哎呀,您访问的地址 ' + url + ' 是一个未知的地方。请点击首页看看别的?', 'statuscode': '404'}) + + +def server_error_view(request): + return render(request, 'blog/error_page.html', + {'message': '哎呀,出错了,我已经收集到了错误信息,之后会抓紧抢修,请点击首页看看别的?', 'statuscode': '500'}) + + +def permission_denied_view(request): + return render(request, 'blog/error_page.html', + {'message': '哎呀,您没有权限访问此页面,请点击首页看看别的?', 'statuscode': '403'}) diff --git a/templates/blog/error_page.html b/templates/blog/error_page.html new file mode 100644 index 0000000..66f4b41 --- /dev/null +++ b/templates/blog/error_page.html @@ -0,0 +1,45 @@ +{% extends 'share_layout/base.html' %} +{% load blog_tags %} +{% load cache %} +{% block header %} + {% if tag_name %} + {% if statuscode == '404' %} +