我们知道,部署Django到生产环境时,settings.DEBUG必须设置为False, 否则会带来很大的安全隐患。
那作为开发者怎样才可以跳过这个限制了,可以通过自定义中间件实现:
import sys
from django.views.debug import technical_500_response
class UserBasedExceptionMiddleware(object):
def process_exception(self, request, exception):
if request.user.is_superuser:
return technical_500_response(request, *sys.exc_info())
这样跑出异常时,可以判断用户是否是超级管理员,如果是超级管理员,则打印详细的日志信息。
网友评论