Flask接口请求报错:服务器无法理解请求,求问题排查
问题原因与解决方法
核心问题
你把GetRecipes和Hello两个API资源都绑定到了同一个根路径/,Flask-RESTful无法判断该路径下的请求该由哪个资源类处理,直接导致请求解析失败,返回无法理解请求的错误。
解决步骤
1. 为不同资源分配独立端点
修改koho-flask.py中的端点绑定代码,给两个资源设置不同的路径:
# 替换原端点绑定代码 api.add_resource(GetRecipes, '/recipes') # 食谱推荐接口 api.add_resource(Hello, '/hello') # 测试问候接口
2. 调整测试代码的请求URL
根据新的端点路径,修改test.py中的请求地址:
import requests # 测试食谱推荐接口 url_recipes = 'http://127.0.0.1:5000/recipes' params = {'query': 'chicken'} response = requests.get(url_recipes, params=params) a = response.json() print(a) # 测试问候接口 url_hello = 'http://127.0.0.1:5000/hello' response_hello = requests.get(url_hello) b = response_hello.json() print(b)
额外检查点
- 确认
user.recommend_meal方法返回的是可JSON序列化的数据(如字典、列表),如果是自定义对象,需要先转换为JSON支持的格式,否则会引发新的响应错误。 - 启动服务器前,确保5000端口未被其他程序占用。
内容的提问来源于stack exchange,提问作者davidocodes
相关产品推荐
相关产品推荐

