Python 除了钩子?我想为未捕获的异常显示一个自定义的500错误页面
我不熟悉python和django,希望为未捕获的异常显示一个自定义的500错误页面。我该怎么做?我担心应用程序只是在出现未捕获的服务器错误时显示一个空白页面 目前,我在sitecustomize.py中有此代码段Python 除了钩子?我想为未捕获的异常显示一个自定义的500错误页面,python,django,Python,Django,我不熟悉python和django,希望为未捕获的异常显示一个自定义的500错误页面。我该怎么做?我担心应用程序只是在出现未捕获的服务器错误时显示一个空白页面 目前,我在sitecustomize.py中有此代码段 import sys def info(type, value, tb): if (#hasattr(sys, "ps1") or not sys.stderr.isatty() or not sys.stdin.isatty()):
import sys
def info(type, value, tb):
if (#hasattr(sys, "ps1") or
not sys.stderr.isatty() or
not sys.stdin.isatty()):
# stdin or stderr is redirected, just do the normal thing
original_hook(type, value, tb)
else:
# a terminal is attached and stderr is not redirected, debug
import traceback, pdb
traceback.print_exception(type, value, tb)
print
pdb.pm()
#traceback.print_stack()
original_hook = sys.excepthook
if sys.excepthook == sys.__excepthook__:
# if someone already patched excepthook, let them win
sys.excepthook = info
现在,我正在引发UnreadablePostError,而不是在登录后操作中捕获它。这样做就是给我一个出现服务器错误的白色页面。请与管理员联系。文本我尝试使用此代码段而不是info函数中的原始_钩子来记录错误:
import logging
logger.error("Uncaught exception", exc_info=(type, value, tb))
Python解释器似乎没有使用sys.excepthook。我遗漏了什么?如果您想向用户显示您可以使用的自定义500错误html页面。 如果您想记录异常,那么您不需要手动截获所有异常-您只需添加 注意:我建议您检查处理多台生产服务器的错误,这样您就不需要检查日志或创建任何类型的通知