Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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 tornado定制404错误页面_Python_Tornado_Traceback - Fatal编程技术网

使用Python tornado定制404错误页面

使用Python tornado定制404错误页面,python,tornado,traceback,Python,Tornado,Traceback,我正试图用python tornado实现一个自定义404页面。 文档中说:“default\u handler\u class和default\u handler\u args:如果找不到其他匹配项,将使用该处理程序;使用它实现自定义404页面(Tornado 3.2中新增)。”。没有关于处理程序需要如何工作的好信息。我尝试使用以下代码: 类defaultHandler(tornado.web.RequestHandler): 定义初始化(self,arg2,arg3): 打印(“称为默认处理

我正试图用python tornado实现一个自定义404页面。 文档中说:“
default\u handler\u class
default\u handler\u args
:如果找不到其他匹配项,将使用该处理程序;使用它实现自定义404页面(Tornado 3.2中新增)。”。没有关于处理程序需要如何工作的好信息。我尝试使用以下代码:

类defaultHandler(tornado.web.RequestHandler):
定义初始化(self,arg2,arg3):
打印(“称为默认处理程序”)
self.arg2=arg2
self.arg3=arg3
def get(自我):
self.write(“404-我的东西”)
使用此tornado配置:

返回tornado.web.Application([
(r“/main”,MainHandler),
(r“/更新_kurse”,更新调用),
(r“/”,登录页),
],static_path=os.path.join(os.path.dirname(_文件,,“static”),
template_path=os.path.join(os.path.dirname(_文件__),“templates”),
默认处理程序(默认类=默认处理程序)
这将导致一个错误:

ERROR:tornado.application:Uncaught exception
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\http1connection.py", line 273, in _read_message
    delegate.finish()
  File "C:\Users\******\lib\site-packages\tornado\routing.py", line 268, in finish
    self.delegate.finish()
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2297, in finish
    self.execute()
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2337, in execute
    return self.handler._prepared_future
AttributeError: 'defaultHandler' object has no attribute '_prepared_future'
ERROR:tornado.application:Error in exception logger
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1752, in _handle_request_exception
    self.log_exception(*sys.exc_info())
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1790, in log_exception
    self._request_summary(),
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1740, in _request_summary
    self.request.method,
AttributeError: 'function' object has no attribute 'method'
ERROR:tornado.application:Exception in exception handler
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1708, in _execute
    self._handle_request_exception(e)
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1757, in _handle_request_exception
    if self._finished:
AttributeError: 'defaultHandler' object has no attribute '_finished'
ERROR:asyncio:Exception in callback _HandlerDelegate.execute.<locals>.<lambda>(<Task finishe...ed_future'",)>) at C:\Users\******\lib\site-packages\tornado\web.py:2333
handle: <Handle _HandlerDelegate.execute.<locals>.<lambda>(<Task finishe...ed_future'",)>) at C:\Users\******\lib\site-packages\tornado\web.py:2333>
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\asyncio\events.py", line 145, in _run
    self._callback(*self._args)
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2333, in <lambda>
    fut.add_done_callback(lambda f: f.result())
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1714, in _execute
    if self._prepared_future is not None and not self._prepared_future.done():
AttributeError: 'defaultHandler' object has no attribute '_prepared_future'
Called default handler
ERROR:tornado.application:Uncaught exception
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\http1connection.py", line 273, in _read_message
    delegate.finish()
  File "C:\Users\******\lib\site-packages\tornado\routing.py", line 268, in finish
    self.delegate.finish()
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2297, in finish
    self.execute()
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2337, in execute
    return self.handler._prepared_future
AttributeError: 'defaultHandler' object has no attribute '_prepared_future'
ERROR:tornado.application:Error in exception logger
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1752, in _handle_request_exception
    self.log_exception(*sys.exc_info())
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1790, in log_exception
    self._request_summary(),
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1740, in _request_summary
    self.request.method,
AttributeError: 'function' object has no attribute 'method'
ERROR:tornado.application:Exception in exception handler
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1708, in _execute
    self._handle_request_exception(e)
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1757, in _handle_request_exception
    if self._finished:
AttributeError: 'defaultHandler' object has no attribute '_finished'
ERROR:asyncio:Exception in callback _HandlerDelegate.execute.<locals>.<lambda>(<Task finishe...ed_future'",)>) at C:\Users\******\lib\site-packages\tornado\web.py:2333
handle: <Handle _HandlerDelegate.execute.<locals>.<lambda>(<Task finishe...ed_future'",)>) at C:\Users\******\lib\site-packages\tornado\web.py:2333>
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\asyncio\events.py", line 145, in _run
    self._callback(*self._args)
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2333, in <lambda>
    fut.add_done_callback(lambda f: f.result())
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1714, in _execute
    if self._prepared_future is not None and not self._prepared_future.done():
AttributeError: 'defaultHandler' object has no attribute '_prepared_future'
Called default handler
ERROR:tornado.application:Uncaught exception
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\http1connection.py", line 273, in _read_message
    delegate.finish()
  File "C:\Users\******\lib\site-packages\tornado\routing.py", line 268, in finish
    self.delegate.finish()
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2297, in finish
    self.execute()
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2337, in execute
    return self.handler._prepared_future
AttributeError: 'defaultHandler' object has no attribute '_prepared_future'
ERROR:tornado.application:Error in exception logger
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1752, in _handle_request_exception
    self.log_exception(*sys.exc_info())
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1790, in log_exception
    self._request_summary(),
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1740, in _request_summary
    self.request.method,
AttributeError: 'function' object has no attribute 'method'
ERROR:tornado.application:Exception in exception handler
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1708, in _execute
    self._handle_request_exception(e)
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1757, in _handle_request_exception
    if self._finished:
AttributeError: 'defaultHandler' object has no attribute '_finished'
ERROR:asyncio:Exception in callback _HandlerDelegate.execute.<locals>.<lambda>(<Task finishe...ed_future'",)>) at C:\Users\******\lib\site-packages\tornado\web.py:2333
handle: <Handle _HandlerDelegate.execute.<locals>.<lambda>(<Task finishe...ed_future'",)>) at C:\Users\******\lib\site-packages\tornado\web.py:2333>
Traceback (most recent call last):
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1665, in _execute
    if self.request.method not in self.SUPPORTED_METHODS:
AttributeError: 'function' object has no attribute 'method'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\******\lib\asyncio\events.py", line 145, in _run
    self._callback(*self._args)
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 2333, in <lambda>
    fut.add_done_callback(lambda f: f.result())
  File "C:\Users\******\lib\site-packages\tornado\web.py", line 1714, in _execute
    if self._prepared_future is not None and not self._prepared_future.done():
AttributeError: 'defaultHandler' object has no attribute '_prepared_future'
错误:tornado。应用程序:未捕获异常
回溯(最近一次呼叫最后一次):
文件“C:\Users\*****\lib\site packages\tornado\http1connection.py”,第273行,在“读取”消息中
delegate.finish()
文件“C:\Users\*****\lib\site packages\tornado\routing.py”,第268行,完成
self.delegate.finish()
文件“C:\Users\*****\lib\site packages\tornado\web.py”,第2297行,完成
self.execute()
文件“C:\Users\******\lib\site packages\tornado\web.py”,第2337行,在execute中
返回self.handler.\u已准备好\u未来
AttributeError:“defaultHandler”对象没有属性“\u prepared\u future”
错误:tornado。应用程序:异常记录器中出错
回溯(最近一次呼叫最后一次):
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1665行,在执行中
如果self.request.method不在self.SUPPORTED_方法中:
AttributeError:“函数”对象没有属性“方法”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1752行,在“句柄”和“请求”异常中
self.log\u异常(*sys.exc\u info())
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1790行,在日志中
self.\u请求\u摘要(),
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1740行,在请求摘要中
self.request.method,
AttributeError:“函数”对象没有属性“方法”
错误:tornado。应用程序:异常处理程序中的异常
回溯(最近一次呼叫最后一次):
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1665行,在执行中
如果self.request.method不在self.SUPPORTED_方法中:
AttributeError:“函数”对象没有属性“方法”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1708行,在执行中
self.\u handle\u request\u exception(e)
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1757行,在“句柄”和“请求”异常中
如果self.\u完成:
AttributeError:“defaultHandler”对象没有属性“\u finished”
错误:asyncio:callback\u handlerregate.execute..()中的异常位于C:\Users\******\lib\site packages\tornado\web.py:2333
句柄:)位于C:\Users\******\lib\site packages\tornado\web.py:2333>
回溯(最近一次呼叫最后一次):
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1665行,在执行中
如果self.request.method不在self.SUPPORTED_方法中:
AttributeError:“函数”对象没有属性“方法”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Users\******\lib\asyncio\events.py”,第145行,在运行中
self.\u回调(*self.\u参数)
文件“C:\Users\******\lib\site packages\tornado\web.py”,第2333行,在
fut.add\u done\u回调(lambda f:f.result())
文件“C:\Users\******\lib\site packages\tornado\web.py”,第1714行,在执行中
如果self.\u prepared\u future不是空的,也不是self.\u prepared\u future.done():
AttributeError:“defaultHandler”对象没有属性“\u prepared\u future”

我做错了什么?我找不到任何使用python tornado的404页面的示例。我查看了路由器,但这似乎不适合这里。

如果不调用超类的
\uuuu init\uuuu
方法,就永远不应该覆盖
\uu init\uuuu
RequestHandler.\uuuu init\uuuu
接受两个必须传递的参数。由于这个原因,通常会覆盖
RequestHandler.initialize
方法,而不是
\uuuu init\uuuu
。但是不清楚这个例子中的arg2和arg3是什么,所以我不知道为什么要重写这个方法

传统的404处理程序如下所示:

class DefaultHandler(RequestHandler):
    def prepare(self):
        # Use prepare() to handle all the HTTP methods
        self.set_status(404)
        self.finish("404 - my thing")

如果不调用超类的
\uuuuu init\uuuu
方法,则决不能重写
\uuuu init\uuuu
RequestHandler.\uuuu init\uuuu
接受两个必须传递的参数。由于这个原因,通常会覆盖
RequestHandler.initialize
方法,而不是
\uuuu init\uuuu
。但是不清楚这个例子中的arg2和arg3是什么,所以我不知道为什么要重写这个方法

传统的404处理程序如下所示:

class DefaultHandler(RequestHandler):
    def prepare(self):
        # Use prepare() to handle all the HTTP methods
        self.set_status(404)
        self.finish("404 - my thing")

谢谢成功了,我改变了,因为我在尝试一些东西。(很抱歉因为标记而使用了奇怪的间距!这起作用了,我更改了u