如果urls.py中不存在任何类型的网址模式,请将其重定向到已创建的网页“404.html”页面,而不是通过django显示错误。
答案 0 :(得分:7)
制作一个视图,以便在urls.py中呈现您创建的404.html并将其设置为handler404。
handler404 = 'app.views.404_view'
如果启用了调试,Django将呈现调试视图。否则,如果它不存在,它将在handler404中为所有类型的页面呈现404页面。
关于Customizing error views的Django文档。
检查this答案以获取完整示例。
答案 1 :(得分:2)
在views.py中,只需添加以下代码(无需在urls.py中更改任何内容)。
var express = require('express');
var app = express();
// assuming your Search controller is in controllers/search
var searchCtrl = require('./controllers/search');
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.get('/search', searchCtrl);
将自定义404.html放在模板目录中。
答案 2 :(得分:0)
转到您的项目settings.py
并将DEBUG = True
设置为DEBUG = False
然后Django将所有未设置的模式重定向为未找到。
另外,如果要自定义404模板,请在项目urls.py
设置
handler404 ='app.views.404_view'
然后在您的项目view.py
from django.shortcuts import render_to_response
from django.template import RequestContext
def handler404(request):
response = render_to_response('404.html', {},
context_instance=RequestContext(request))
response.status_code = 404
return response
最后,在您的templates
中添加404.html
,并在其中填充您要向最终用户显示的内容。
答案 3 :(得分:0)
无需更改您的view
或url
中的任何内容。
只需执行以下两个步骤,请在您的settings.py
中,执行以下操作
DEBUG = False
ALLOWED_HOSTS = ["*"]
然后在您的应用程序目录(在本示例中为myapp)中,创建myapp/templates/404.html
,其中404.html
是您的自定义错误页面。就是这样。