用于检索 Flask 上所有数据的资源可选参数 Restful
resource optional argument for retrieving all data on Flask Restful
我想了解 Flask-RESTful,但我不知道如何为资源提供可选参数。
即:
class TodoSimple(Resource):
def get(self, todo_id):
return {todo_id: todos[todo_id]}
def put(self, todo_id):
todos[todo_id] = request.form['data']
return {todo_id: todos[todo_id]}
api.add_resource(TodoSimple, '/<string:todo_id>')
在上述情况下,如何创建一个新的终点,returns 所有待办事项,而不仅仅是一个?
取自:https://flask-restful.readthedocs.io/en/0.3.5/quickstart.html
由于您需要不同的路由来检索所有待办事项,因此创建另一个 class 来处理多个资源。在你的情况下你会做这样的事情:
class TodoSimples(Resource):
def get(self):
return {'todos': todos}
api.add_resource(TodoSimples, '/todos')
我认为最好的方法是有两个Resources/endpoints。第一个管理集合(获取待办事项列表,添加新的待办事项),第二个管理集合的项目(更新或删除项目):
class TodoListResource(Resource):
def get(self):
return {'todos': todos}
class TodoResource(Resource):
def get(self, todo_id):
return {todo: todos[todo_id]}
def put(self, todo_id):
todos[todo_id] = request.form['data']
return {todo: todos[todo_id]}
api.add_resource(TodoListResource, '/todos')
api.add_resource(TodoResource, '/todos/<string:todo_id>/')
这种方式更加 REST。
我想了解 Flask-RESTful,但我不知道如何为资源提供可选参数。
即:
class TodoSimple(Resource):
def get(self, todo_id):
return {todo_id: todos[todo_id]}
def put(self, todo_id):
todos[todo_id] = request.form['data']
return {todo_id: todos[todo_id]}
api.add_resource(TodoSimple, '/<string:todo_id>')
在上述情况下,如何创建一个新的终点,returns 所有待办事项,而不仅仅是一个?
取自:https://flask-restful.readthedocs.io/en/0.3.5/quickstart.html
由于您需要不同的路由来检索所有待办事项,因此创建另一个 class 来处理多个资源。在你的情况下你会做这样的事情:
class TodoSimples(Resource):
def get(self):
return {'todos': todos}
api.add_resource(TodoSimples, '/todos')
我认为最好的方法是有两个Resources/endpoints。第一个管理集合(获取待办事项列表,添加新的待办事项),第二个管理集合的项目(更新或删除项目):
class TodoListResource(Resource):
def get(self):
return {'todos': todos}
class TodoResource(Resource):
def get(self, todo_id):
return {todo: todos[todo_id]}
def put(self, todo_id):
todos[todo_id] = request.form['data']
return {todo: todos[todo_id]}
api.add_resource(TodoListResource, '/todos')
api.add_resource(TodoResource, '/todos/<string:todo_id>/')
这种方式更加 REST。