完全按照此处找到的教程进行操作,我无法创建自定义500或404错误页面。如果我确实输入了错误的网址,则该页面会显示默认的错误页面。有什么我应该检查的内容,以防止显示自定义页面?
文件目录:
mysite/
mysite/
__init__.py
__init__.pyc
settings.py
settings.pyc
urls.py
urls.pyc
wsgi.py
wsgi.pyc
polls/
templates/
admin/
base_site.html
404.html
500.html
polls/
detail.html
index.html
__init__.py
__init__.pyc
admin.py
admin.pyc
models.py
models.pyc
tests.py
urls.py
urls.pyc
view.py
views.pyc
templates/
manage.py
在mysite / settings.py中,我启用了以下功能:
DEBUG = False
TEMPLATE_DEBUG = DEBUG
#....
TEMPLATE_DIRS = (
'C:/Users/Me/Django/mysite/templates',
)
在mysite / polls / urls.py中:
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)
我可以发布任何其他必要的代码,但是如果我使用了错误的网址,应该如何更改以获得自定义500错误页面?
编辑
解决方案: 我还有一个
TEMPLATE_DIRS
在我的settings.py中,这是导致问题的原因
在你的主要内容下,views.py
添加你自己的以下两个视图的自定义实现,然后只需设置要显示的模板404.html和500.html
。
使用此解决方案,无需将自定义代码添加到 urls.py
这是代码:
from django.shortcuts import render_to_response
from django.template import RequestContext
def handler404(request, *args, **argv):
response = render_to_response('404.html', {},
context_instance=RequestContext(request))
response.status_code = 404
return response
def handler500(request, *args, **argv):
response = render_to_response('500.html', {},
context_instance=RequestContext(request))
response.status_code = 500
return response
更新资料
handler404
和handler500
导出的Django字符串配置变量django/conf/urls/__init__.py
。这就是为什么上面的配置起作用的原因。
为了使上述配置生效,你应该在urls.py
文件中定义以下变量,并将导出的Django变量指向定义这些Django功能视图的字符串Python路径,如下所示:
# project/urls.py
handler404 = 'my_app.views.handler404'
handler500 = 'my_app.views.handler500'
Django 2.0更新
处理程序视图的签名在Django 2.0中已更改:https : //docs.djangoproject.com/en/2.0/ref/views/#error-views
如果你使用上述视图,则handler404将失败并显示以下消息:
“ handler404()获得了意外的关键字参数’exception’”
在这种情况下,请修改你的视图,如下所示:
def handler404(request, exception, template_name="404.html"):
response = render_to_response(template_name)
response.status_code = 404
return response
问题内容: 如何使用Play为他们的404/505错误页面创建全局自定义外观? 问题答案: 在Play Framework 1中,您只需修改提供的和。
本文向大家介绍Laravel5.1自定义500错误页面示例,包括了Laravel5.1自定义500错误页面示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel5.1自定义500错误页面的方法。分享给大家供大家参考,具体如下: Laravel 5.1中500错误是程序错误,程序错误一定是系统自带的500错误,可以通过以下步骤简单实现自定义500错误页面。 编辑PHP文件app/
问题内容: 在我的Spring Boot应用程序中,我试图配置自定义错误页面,例如404,我在应用程序配置中添加了以下Bean: 此外,我还创建了以下简单的Thymeleaf模板: 并将其添加到文件夹中。现在,在404错误上,我只能看到白屏。 我在做什么错以及如何正确设置404页面?此外,是否可以将模板而不是仅将静态页面用于自定义错误页面? 问题答案: 在Spring Boot 1.4.x中,你可
在我的Spring Boot应用程序中,我试图配置自定义错误页,例如,对于404,我在应用程序配置中添加了以下Bean: 此外,我还创建了以下简单的Thymeleaf模板: 并将其添加到文件夹中。现在关于404错误,我只能看到白色屏幕。 我做错了什么?如何正确设置404页面?另外,是否可以使用模板而不仅仅是静态页面来定制错误页面?
我们已经部署了一个ASP。NET MVC应用于Azure应用程序服务。 如果请求耗时超过230秒,Azure将返回错误页面“500-请求超时。web服务器未能在指定时间内响应。”-https://stackoverflow.com/a/38676086 我们正在进行更改,以确保对网络请求进行更少的处理,但是仍然有可能达到这些限制。有人知道是否有一种方法可以配置自定义错误页面来显示,而不是下面显示的
问题内容: 我在Django中启用了用户身份验证模块,但是当我使用它时,它仅询问用户名和两个密码/密码确认字段。我还希望将电子邮件和全名字段全部设置为必填字段。 我已经做到了: 现在,该表单显示了新字段,但是没有将它们保存到数据库中。 我怎样才能解决这个问题? 问题答案: 用户模型中没有调用此字段。 如果要使用原始模型存储名称,则必须将其分别存储为名字和姓氏。 编辑: 如果您只希望表单中的一个字段