flask收不到请求,无响应和报错
在使用flask作为后端,使用微信小程序进行真机调试时,遇到了问题:发送请求时,flask对应的函数没有执行,也没有发送响应或错误信息。
分析
通过对比模拟器和真机调试的情况,发现问题可能与请求ip地址有关。模拟器请求时的ip地址为本地ip,而真机调试时的ip地址为另一个ip。
解决
检查了blueprint声明部分和路由部分,发现声明blueprint时没有指定前缀,导致路由的url不完整。修改路由部分如下:
# 修改前 @app.route('/login') # 修改后 @app.route('/api/login')
修改后,flask可以正确收到请求并执行对应的函数。
原因
flask使用blueprint管理项目时,如果在声明blueprint时没有指定前缀,那么blueprint下的所有路由前缀都会缺失。当请求ip不是本地ip时,flask会将请求转发给相应的blueprint处理。但是,由于blueprint下的路由前缀缺失,flask无法找到匹配的路由,导致无法响应请求。
建议
为了避免此类问题,在使用blueprint时,建议直接指定前缀,而不是直接写在根目录。
以上就是Flask后端无响应:真机调试请求失败的原因是什么?的详细内容,更多请关注php中文网其它相关文章!