flask_restful 写个增删改查接口
时间: 2023-08-02 19:05:23 浏览: 90
好的,以下是一个使用 Flask-RESTful 编写的增删改查接口的示例代码:
```python
from flask import Flask
from flask_restful import Api, Resource, reqparse
app = Flask(__name__)
api = Api(app)
# 假设我们要操作的资源是一个 todo
todos = {}
# 定义一个请求参数解析器
parser = reqparse.RequestParser()
parser.add_argument('task', type=str, help='Task is required', required=True)
# 定义一个 Todo 类,继承自 Resource 类
class TodoList(Resource):
# 获取所有 todo 资源
def get(self):
return todos
# 新建一个 todo 资源
def post(self):
args = parser.parse_args()
task = args['task']
todo_id = len(todos) + 1
todos[todo_id] = {'task': task}
return {todo_id: todos[todo_id]}, 201
# 定义一个 TodoItem 类,继承自 Resource 类
class TodoItem(Resource):
# 获取指定 todo 资源
def get(self, todo_id):
if todo_id in todos:
return {todo_id: todos[todo_id]}
else:
return {'error': 'Todo not found'}, 404
# 更新指定 todo 资源
def put(self, todo_id):
if todo_id in todos:
args = parser.parse_args()
task = args['task']
todos[todo_id] = {'task': task}
return {todo_id: todos[todo_id]}, 200
else:
return {'error': 'Todo not found'}, 404
# 删除指定 todo 资源
def delete(self, todo_id):
if todo_id in todos:
task = todos[todo_id]['task']
del todos[todo_id]
return {task: 'deleted successfully'}, 204
else:
return {'error': 'Todo not found'}, 404
# 将 TodoList 类绑定到 /todos 路由上
api.add_resource(TodoList, '/todos')
# 将 TodoItem 类绑定到 /todos/<int:todo_id> 路由上
api.add_resource(TodoItem, '/todos/<int:todo_id>')
if __name__ == '__main__':
app.run(debug=True)
```
这个接口将在访问 /todos 路由时获取所有 todo 资源,在访问 /todos/<int:todo_id> 路由时获取、更新或删除指定的 todo 资源。请求参数中需要指定待新增或更新任务的描述,例如:
```
POST /todos?task=buy milk HTTP/1.1
PUT /todos/1?task=buy eggs HTTP/1.1
```
其中,HTTP 201 Created 响应表示成功创建了一个新的 todo 资源,HTTP 200 OK 响应表示成功更新了指定的 todo 资源,HTTP 204 No Content 响应表示成功删除了指定的 todo 资源。
阅读全文