我有一个flask-RESTful端点,定义如下:
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修改为:
http://127.0.0.1:5000/events/test/ / #<--Spaces和
http://127.0.0.1:5000/events/test/""/""无济于事。
发布于 2018-06-21 05:19:18
最终通过使用flask-restful request对象解决了这个问题,该对象有一个从请求url检索查询参数的args属性:
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¶m2=value2或传递空值:http://127.0.0.1:5000/events?param=¶m2=value1
发布于 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,但没有查询参数。
https://stackoverflow.com/questions/50882956
复制相似问题