我们的django应用程序遇到了问题。有时,数据库崩溃/连接太多等,Django不断地引发异常。我们如何捕获这些异常并将用户重定向到错误页面?
zwghvu4y1#
如果要显示错误500的自定义页面,然后将异常保存在日志中,请执行以下步骤:1.要查看异常,您可以使用here中的日志设置。1.在应用程序templates/errors/文件夹中创建新的HTML文件error_500.html。1.将视图函数error_500添加到应用的views.py:定义错误_500(请求):返回渲染(请求,“错误/错误_500.html”)1.将路由添加到urls.py(主站点或应用中的站点)。例如从django.conf.urls导入handler 404,handler 500从YOURAPP导入视图为yourapp_views处理程序404 =您的应用程序视图错误404处理程序500 =您的应用程序视图错误500从现在开始,在 * 生产 * 模式(DEBUG=0,ALLOWED_HOSTS被设置,以WSGI运行等)下,当异常发生时,Django应该显示error_500. html的内容作为Error 500页面。您将在系统日志中看到更多信息。
templates/errors/
error_500.html
error_500
views.py
zz2j4svz2#
使用下面**test视图**中的DatabaseError,您将能够处理所有数据库异常,然后在发生数据库异常时将用户重定向到错误页面:
test
# "views.py" from django.db import transaction, DatabaseError from django.shortcuts import redirect, render from .models import Person @transaction.atomic def test(request): try: obj = Person.objects.get(id=2) obj.name = "David" obj.save() except DatabaseError as e: return redirect("/error-page/") return render(request, 'myapp/success.html')
2条答案
按热度按时间zwghvu4y1#
如果要显示错误500的自定义页面,然后将异常保存在日志中,请执行以下步骤:
1.要查看异常,您可以使用here中的日志设置。
1.在应用程序
templates/errors/
文件夹中创建新的HTML文件error_500.html
。1.将视图函数
error_500
添加到应用的views.py
:定义错误_500(请求):返回渲染(请求,“错误/错误_500.html”)
1.将路由添加到urls.py(主站点或应用中的站点)。例如
从django.conf.urls导入handler 404,handler 500从YOURAPP导入视图为yourapp_views
处理程序404 =您的应用程序视图错误404处理程序500 =您的应用程序视图错误500
从现在开始,在 * 生产 * 模式(DEBUG=0,ALLOWED_HOSTS被设置,以WSGI运行等)下,当异常发生时,Django应该显示error_500. html的内容作为Error 500页面。您将在系统日志中看到更多信息。
zz2j4svz2#
使用下面**
test
视图**中的DatabaseError,您将能够处理所有数据库异常,然后在发生数据库异常时将用户重定向到错误页面: