如何才能获得错误消息的一致结果?

时间:2013-05-02 19:33:42

标签: python python-2.7 cherrypy

我将以下小脚本作为基于CherryPy 3.2.2的独立应用程序运行(好吧,实际上它是一个精简版本,用于演示我正在尝试纠正的内容):

import cherrypy
from cherrypy import _cperror

class MyApp:
  def __init__(self, **kwargs):
    if ('recursive' in kwargs) and kwargs['recursive']:
      return
    cherrypy.tree.mount(MyApp(recursive=True), '/cgi-bin', {})

  def error_page(status, message, traceback, version):
    error_template = """\
<html><head><title>%s</title></head>
<body><h1>%s</h1><p>%s</p></body>
</html>"""
    return error_template % (status, status, message)

  @cherrypy.expose
  def script_name(self, **kwargs):
    return str(kwargs)

  favicon_ico = None
  _cp_config = {'error_page.404' : error_page}

if __name__ == '__main__':
  cherrypy.quickstart(
      MyApp(),
      config = {
        'global':{
          'server.socket_host':'0.0.0.0',
          'server.socket_port':8080,
          }})

当我在/cgi-bin下面或通常在任何地方获取网址时,我会得到预期的结果:

  

404 Not Found

     

路径&#39; /&#39;没找到。

但是,当我获取任何通过&#34; PATH_INFO&#34;例如/cgi-bin/script_name/foobar我得到:

  

404 Not Found

     

没有任何东西与给定的URI相匹配

我如何确保在后一种情况下我获得与前者相同的错误消息(只有变量是消息中提到的实际路径),同时仍然能够在URI /cgi-bin/script_name下提供内容?

0 个答案:

没有答案