Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 除了钩子?我想为未捕获的异常显示一个自定义的500错误页面_Python_Django - Fatal编程技术网

Python 除了钩子?我想为未捕获的异常显示一个自定义的500错误页面

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()):

我不熟悉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()):
       # 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页面。 如果您想记录异常,那么您不需要手动截获所有异常-您只需添加

注意:我建议您检查处理多台生产服务器的错误,这样您就不需要检查日志或创建任何类型的通知