Python 具有多个查询参数的Flask api端点
我肯定这个问题可能有重复的地方,但我不知道什么是正确的措辞是我的问题 我有我想要到达的端点,我对它们运行了Python 具有多个查询参数的Flask api端点,python,flask,flask-restful,Python,Flask,Flask Restful,我肯定这个问题可能有重复的地方,但我不知道什么是正确的措辞是我的问题 我有我想要到达的端点,我对它们运行了curl命令: curl http://0.0.0.0:5001/job/task/?job_type=medicine&task_type=research curl http://0.0.0.0:5001/job/task/?job_type=medicine&task_type=research&job_id=123 我在这两方面都会遇到以下错误: <t
curl
命令:
curl http://0.0.0.0:5001/job/task/?job_type=medicine&task_type=research
curl http://0.0.0.0:5001/job/task/?job_type=medicine&task_type=research&job_id=123
我在这两方面都会遇到以下错误:
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>
如何修复错误?您的烧瓶路径
api.add_resource(Test, '/job/task/?<string:job_type>&<string:task_type>', '/job/task/?<string:job_type>&<string:task_type>&<int:job_id>')
不是
这将导致端点未找到错误
解决方案
您可以使用request.args
()
所以,您的url定义应该是
api.add_resource(Test, '/job/task/')
在你看来
from flask import request
.....
def get(self):
job_type = request.args.get("job_type")
task_type = request.args.get("task_type")
task_id = request.args.get("task_id")
if not task_id:
return {"job_type":job_type,"task_type":task_type}
return {"job_type":job_type,"task_type":task_type,"job_id":job_id}
其他解决方案:
/job/task/?job_type=xxx&task_type=yyy
api.add_resource(Test, '/job/task/')
from flask import request
.....
def get(self):
job_type = request.args.get("job_type")
task_type = request.args.get("task_type")
task_id = request.args.get("task_id")
if not task_id:
return {"job_type":job_type,"task_type":task_type}
return {"job_type":job_type,"task_type":task_type,"job_id":job_id}