2

使用tipfy,如果更具体的路线不匹配,如何在urls.py 中表达一条包罗万象的路线?

Tipfy 使用类似 Werkzeug 的路由,所以有这个(在urls.py中):

def get_rules(app): 
rules = [ 
    Rule('/<any>', endpoint='any', handler='apps.main.handlers.MainHandler'), 
    Rule('/', endpoint='main', handler='apps.main.handlers.MainHandler'), 
] 

这将匹配应用程序的大多数随机入口点(app.example.com/fooapp.example.com/%20等),但不包括导致 404 的app.example.com/foo/bar情况。

或者,是否有一种优雅的方式来处理我缺少的 Tipfy 中的 404?

4

2 回答 2

4

我想你想要:

Rule('/<path:any>', endpoint='any', handler='apps.main.handlers.MainHandler')

路径匹配器也匹配斜杠。

于 2010-10-20T16:41:39.023 回答
2

也许您可以编写自定义中间件:

class CustomErrorPageMiddleware(object):    
def handle_exception(self, e):           
    return Response("custom error page")

要启用它,请在tipfy配置中添加某处:

   config['tipfy'] = {
       'middleware': [
           'apps.utils.CustomErrorPageMiddleware',
       ]
   }

它为您提供了相当大的灵活性——例如,您可以在某处发送邮件以通知存在问题。这将拦截应用程序中的所有异常

于 2010-10-20T20:55:39.170 回答