使用 Tipfy 进行全面路由
使用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 的优雅方法吗?
Using tipfy, how does one express a catch-all route in urls.py if more specific routes do not match?
Tipfy uses Werkzeug-like routing, so there's this (in urls.py):
def get_rules(app):
rules = [
Rule('/<any>', endpoint='any', handler='apps.main.handlers.MainHandler'),
Rule('/', endpoint='main', handler='apps.main.handlers.MainHandler'),
]
This will match most random entry points into the application (app.example.com/foo, app.example.com/%20 etc) but does not cover the app.example.com/foo/bar case which results in a 404.
Alternatively, is there a graceful way to handle 404 in Tipfy that I'm missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想你想要:
Rule('/', endpoint='any', handler='apps.main.handlers.MainHandler')
路径匹配器也匹配斜杠。
I think you want:
Rule('/<path:any>', endpoint='any', handler='apps.main.handlers.MainHandler')
The path matcher also matches slashes.
也许您可以编写自定义中间件:
要启用它,请在
tipfy
配置中添加某个位置:它为您提供了相当大的灵活性 - 例如,您可以在某个地方发送邮件来通知存在问题。这将拦截应用程序中的所有异常
Maybe you could write custom middle ware:
To enable it add somewhere to
tipfy
config:It gives you quite a flexibility - you could for example send mail somewhere to inform that there was a problem. This will intercept all exceptions in your application