我有一个由django支持的网站。有几个url模式,我无法捕捉 说www.mysite.com/12233445
www.mysite.com/@##$$$
www.mysite.com/alphabetagamma
这导致500错误页面,我希望所有这样的非标准网址重定向到404错误页面。任何线索是做这件事的最好方法?提高404而不是500 urls.py django
1
A
回答
0
转到您的意见,执行除try块外的所有获取/过滤操作。
try:
variable = object.get(some checks here)
except: object.DoesNotExist
raise Http404
return (whatever)
+0
通常,如果网址完全不正确,则根本不应该点击视图。示例 - 如果example.com/nothing中没有任何内容,它应该直接引发404。如果您正在检查部分网址,则应使用上面的示例。示例example.com/news/news-exist正在工作(您认为试图在数据库中查找“新闻存在”)example.com/news/news-does-not-exist应该在未找到新闻后提出404 DB。这就是为什么你有get_object_or_404方法 –
1
通过使用定制handler500¶你可以改变从500到404的响应状态代码使您的项目回到这个职位可能会帮助你的想法如何做到这一点 - http://ilian.i-n-i.org/custom-404-not-found-page-with-django-cms/
但作为@Daniel说找不到500页是不正常的。打开调试模式,并检查导致500的错误。
1
您是否创建了404.html
模板?如果您的settings.py
中有DEBUG = False
,但您尚未创建404.html
模板,则会发生这种情况。这会引发TemplateDoesNotExist
异常,因此会出现错误500响应。
相关问题
- 1. Heroku提高500而不是404与Django应用程序
- 2. 500.html而不是404.html
- 3. 的Django提高404消息
- 4. 显示404,而不是500的Rails
- 5. Symfony:我得到了500而不是404
- 6. laravel php获取500而不是404
- 7. Django是返回,而不是404
- 8. 的Django与gunicorn和nginx的不返回404或500
- 9. urls.py在Django
- 10. Django RSS提要500错误
- 11. 问题解耦urls.py,而以下的django
- 12. 500内部服务器错误,而不是:404 - 未找到
- 13. 使用WCF Webapi获取HTTP 500而不是HTTP 404
- 14. Django的 - 在urls.py
- 15. Django应用程序,它是500上的404
- 16. Django:分页与urls.py
- 17. 当DEBUG为False时(404和500模板存在),Django提升404页面
- 18. django rest框架PUT返回404而不是创建对象
- 19. Django反向异常产生404或500?
- 20. PHP - 500,而不是错误
- 21. Django的EOL在urls.py
- 22. 神秘...伪造的引用者生成500而不是404错误
- 23. 的Django总是给404
- 24. ASP.NET:通过'System.Web.Http.IHttpActionResult'提高500。
- 25. Django多个应用程序和urls.py
- 26. 一个高效的SQL调用,而不是500
- 27. Django urls.py给出问题
- 28. 关于Django的问题urls.py
- 29. 为什么在Django 1.8有不同urls.py
- 30. django网站不显示,由于urls.py
通常情况下,如果URL不匹配,你会得到一个404页面。你必须有一个匹配的URL - 请发布你的urls.py。 –