Python Bottle服务器路由顺序调整:通用路由后置访问问题咨询
Bottle路由顺序调整方案
Bottle的路由是按定义顺序优先匹配的——先写的路由会先被检查,只要请求路径匹配上,就直接执行对应的处理函数,不会再往下找其他路由。
你现在的代码是先定义/helllo/<path:path>,再定义通用的/<path:path>:
@app.route('/helllo/<path:path>', method=['POST', 'GET']) # 你的处理逻辑 @app.route('/<path:path>', method=['POST', 'GET']) # 你的处理逻辑
这种情况下通用路由本来就能正常工作:所有不是/helllo/开头的请求都会被它处理,/helllo/开头的则会被前面的具体路由拦截。
如果你的需求是让通用路由能接管所有请求(包括/helllo/开头的),那把通用路由移到最前面就行:
@app.route('/<path:path>', method=['POST', 'GET']) # 你的处理逻辑 @app.route('/helllo/<path:path>', method=['POST', 'GET']) # 你的处理逻辑
但这么做的话,/helllo/<path:path>这条路由就彻底没用了,因为所有请求都会被前面的通用路由先匹配到。
正常场景下,正确的做法就是把具体路由放在前面,通用兜底路由放在最后——也就是你现在的顺序,这样既能保证/helllo/相关的请求走专门的处理逻辑,其他请求都由通用路由承接,完全不需要额外调整。
内容的提问来源于stack exchange,提问作者hellowrold6665
相关产品推荐
相关产品推荐

