40

在 Cherrypy 中可以这样做:

@cherrypy.expose
def default(self, url, *suburl, **kwarg):
    pass

有没有等效的烧瓶?

4

4 回答 4

61

Flask 的网站上有一段关于烧瓶的“包罗万象”路线的片段。你可以在这里找到它

基本上,装饰器通过链接两个 URL 过滤器来工作。页面上的示例是:

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def catch_all(path):
    return 'You want path: %s' % path

这会给你:

% curl 127.0.0.1:5000          # Matches the first rule
You want path:  
% curl 127.0.0.1:5000/foo/bar  # Matches the second rule
You want path: foo/bar
于 2012-12-03T06:56:47.117 回答
2
@app.errorhandler(404)
def handle_404(e):
    # handle all other routes here
    return 'Not Found, but we HANDLED IT
于 2020-12-01T10:51:24.223 回答
1

如果您的单页应用程序具有嵌套路由(例如 www.myapp.com/tabs/tab1 - Ionic/Angular 路由中的典型),您可以像这样扩展相同的逻辑:

@app.route('/', defaults={'path1': '', 'path2': ''})
@app.route('/<path:path1>', defaults={'path2': ''})
@app.route('/<path:path1>/<path:path2>')
def catch_all(path1, path2):
    return app.send_static_file('index.html')
于 2019-11-18T21:18:47.323 回答
0

试试这个

@app.route('/')
def entry():
    return redirect('/defaultroute')
于 2021-02-27T13:58:34.560 回答