My Flask app的网址路由定义为
self.add_url_rule('/api/1/accounts/<id_>', view_func=self.accounts, methods=['GET'])
问题是应用程序向此应用程序发出查询之一添加了其他/在网址中 / api / 1 // accounts / id 。我无法控制进行此类查询的应用程序,因此我无法对其进行更改。
目前我已经添加了多个规则
来解决此问题self.add_url_rule('/api/1/accounts/<id_>', view_func=self.accounts, methods=['GET'])
self.add_url_rule('/api/1//accounts/<id_>', view_func=self.accounts, methods=['GET'])
有很多这样的路线,这是一个丑陋的解决方法。在点击路由逻辑之前,是否有一种方法可以修改URL?
答案 0 :(得分:4)
我通过拥有承载WSGI容器的HTTP服务器或堆栈之前的代理服务器,或者使用WSGI中间件,在路径到达Flask之前规范化路径。
后者很容易写:
ExecWait '"$R6\Uninstall.exe" _?=$R6' ;Do not copy the uninstaller to a temp file
您可能希望记录您正在应用此转换以及REMOTE_HOST和HTTP_USER_AGENT条目等诊断信息。就个人而言,我强制该特定应用程序尽快生成未损坏的URL。
查看您的WSGI服务器文档,了解如何添加额外的WSGI中间件组件。