使用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/foo、app.example.com/%20等),但不涵盖app.example.com/foo/bar的情况,从而导致404。
或者,是否有一种优雅的方法来处理Tipfy中我丢失的404?
发布于 2010-10-20 16:41:39
我想你想:
Rule('/<path:any>', endpoint='any', handler='apps.main.handlers.MainHandler')
路径匹配器还匹配斜杠。
发布于 2010-10-20 20:55:39
也许你可以写一些定制的中间件:
class CustomErrorPageMiddleware(object):
def handle_exception(self, e):
return Response("custom error page")要使它能够添加到tipfy配置中的某个位置:
config['tipfy'] = {
'middleware': [
'apps.utils.CustomErrorPageMiddleware',
]
}它提供了相当大的灵活性--例如,您可以在某个地方发送邮件,以告知存在问题。这将拦截应用程序中的所有异常。
https://stackoverflow.com/questions/3965460
复制相似问题