我有一个运行MySQL和Redis作为后端的django应用程序
我有一个名为redis_helper()
的函数来执行redis查询。
但有时Redis崩溃并需要一段时间来启动,所以我需要返回友好的HTTP 500错误消息。
问题是,django只定义了Http404(Exception)
中的django/http/__init__.py
类,而不是Http500()
,所以我必须在try ... except
的每个视图函数中手动添加redis_helper()
} 被卷入。感觉有点难看,重复工作。
是否有任何方便的方法在视图函数中使用return HttpResponseServerError()
引发服务器500错误而不是?如果我必须自己编写Http500
课程,哪个文件最适合写它?
问候并谢谢你!
答案 0 :(得分:0)
听起来try:
电话周围没有Redis
阻止。
是这样的吗?
如果是,答案是使用try:
阻止。
所以我必须手动添加try ...除了涉及redis_helper()的每个视图函数。
正确。
感觉有点难看并且重复工作。
不正确的。每个视图函数都必须返回HttpResponse
个对象。你必须实际编写该代码。
我很抱歉,如果编写视图函数似乎在重复,但是,这就是他们必须工作的方式。他们必须返回HttpResponse
个对象。
编辑。也。请阅读:
http://docs.djangoproject.com/en/1.3/topics/http/views/#the-500-server-error-view
答案 1 :(得分:0)
好的,现在我明白了Http404
的工作原理。因此,您必须在某处定义此Http500
异常,并在中间件中捕获它。