首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Flask-RESTful检索查询参数

使用Flask-RESTful检索查询参数
EN

Stack Overflow用户
提问于 2018-06-16 05:36:26
回答 2查看 10K关注 0票数 6

我有一个flask-RESTful端点,定义如下:

代码语言:javascript
复制
class SearchEvents(Resource):
    def get(self, name, start_date, end_date):
         #do stuff

api.add_resource(endpoints.SearchEvents, '/events/<string:name>/<string:start_date>/<string:end_date>')

我正在用Postman手动测试它。我想为start_date和end_date传入空值。但是:

我已尝试将url修改为:

代码语言:javascript
复制
http://127.0.0.1:5000/events/test/ /  #<--Spaces

代码语言:javascript
复制
http://127.0.0.1:5000/events/test/""/""

无济于事。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-21 05:19:18

最终通过使用flask-restful request对象解决了这个问题,该对象有一个从请求url检索查询参数的args属性:

代码语言:javascript
复制
from flask_restful import request #import request from flask restful

class SearchEvents(Resource):
    def get(self):
        args = request.args #retrieve args from query string

api.add_resource(endpoints.SearchEvents, '/events')

然后发出如下请求:http://127.0.0.1:5000/events?param1=value1&param2=value2或传递空值:http://127.0.0.1:5000/events?param=&param2=value1

票数 15
EN

Stack Overflow用户

发布于 2018-06-18 20:02:33

您传递的值不在查询字符串中。您使用路由部分作为参数,因此除非您提供/events/some_name/2019-86-98/2100-9885-24515形式的内容,否则路由不会匹配。您所做的尝试会被flask捕获为不匹配的路由,并且您会得到404 not found。

要将这些参数作为查询字符串的一部分发送,需要使用/events?name=some_name&start_date=2019-86-98&end_date=2100-9885-24515之类的内容,而要获取路由处理程序中的值,则应该使用name = request.args.get('name')等。然后,传递空值意味着命中相同的url,但没有查询参数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50882956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档