如果在django中的urls.py中找不到,则将任何网址重定向到404.html

时间:2015-05-14 03:37:01

标签: python regex django django-urls

如果urls.py中不存在任何类型的网址模式,请将其重定向到已创建的网页“404.html”页面,而不是通过django显示错误。

4 个答案:

答案 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放在模板目录中。

source : click here

答案 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)

无需更改您的viewurl中的任何内容。 只需执行以下两个步骤,请在您的settings.py中,执行以下操作

DEBUG = False
ALLOWED_HOSTS = ["*"]

然后在您的应用程序目录(在本示例中为myapp)中,创建myapp/templates/404.html,其中404.html是您的自定义错误页面。就是这样。