所以,在我的项目中,我想添加一个自定义的404错误页面,所以我按照我在网上找到的内容,但似乎没有什么对我有用 .
这就是我的文件:
settings.py
import os
# Django settings for HogwartsMail project.
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
DEBUG = False
TEMPLATE_DEBUG = DEBUG
# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
ALLOWED_HOSTS = ["*"]
urls.py
urlpatterns = patterns('',
...
)
handler404 = "HogwartsMail.views.error404"
views.py
def error404(request):
return render(request,'404.html')
每当我尝试输入一个随机网址时,我得到的服务器错误(500)并没有得到404错误 .
正如我所说,我尝试了许多不同的方式,但没有一个真正适合我 .
另外,我遇到的另一个问题是我加载的页面非常慢,并且它们没有打开样式或图像,所以我认为,当 DEBUG = False
时,我需要一切都已经在线 . 那是对的吗?
5 回答
在项目文件夹的urls.py中添加此帐户(它可以是任何应用程序)是同一项目的应用程序:
project/urls.py
在帐户视图中添加以下内容:
accounts/views.py
不要忘记进行必要的进口 . 另外,在测试分段时,不要忘记在settings.py中更改Debug = False .
当
DEBUG = False
时,您可以使用python manage.py runserver --insecure
在本地开发期间提供静态文件 .请参阅this answer中的更多信息 .
另一个例子:
好吧,事实证明我没有't seem to need to do anything but create a 404.html page. By creating in, when an 1304899 error is raised, Django will first look for a 404.html in your templates, before using it'自己的错误页面 . 我仍然有一个问题,我的静态文件不在网络上 - 当设置
DEBUG = False
既没有css文件也没有出现我的任何图像 . 除此之外,我的问题是固定的 .作为a best practice我在我的项目中添加了2
urls.py
. 所以我在我的基地urls.py
中添加handler404
. 我的父母urls.py
看起来像这样和
error_404
是我的views.py
中的一个视图 . 像这样查看完整的教程here