【Python_Flask系列之_调试书籍管理增删改查接口】

1、书籍管理_新增接口

1、调试进入数据新增接口及数据库插入成功:
下面展示一些 内联代码片

@book.route("/addBook", methods=["POST"])
def add_book():
    if request.method == "POST":
        post_data = request.get_json()
        book_list = select_data_all()
        title_list = []
        for i in range(len(book_list)):
            title_list.append(book_list[i]["title"])
        if post_data.get("title") in title_list:
            return jsonify(msg="书名(title)重复", status="fail")
        if post_data.get("title") is None:
            return jsonify(msg="title是必传参数!", status="fail")
        if post_data.get('author') is None:
            return jsonify(msg="author是必传参数!", status="fail")
        if post_data.get('read_status') is None:
            return jsonify(msg="read_status是必传参数!", status="fail")
        title = str(post_data.get('title')).strip()
        author = str(post_data.get('author')).strip()
        read_status = post_data.get('read_status')
        insert_data(title=title, author=author, read_status=read_status)
        jsonify(msg="图书添加成功", status="success")
        return jsonify(msg="图书添加成功", status="success")

在这里插入图片描述
在这里插入图片描述

2、书籍管理_修改接口

1、修改书籍接口:

    if request.method == "PUT":
        post_data = request.get_json()
        if not post_data.get('id'):
            return jsonify(msg="id是必传参数!", status="fail")
        if not post_data.get('title'):
            return jsonify(msg="title是必传参数!", status="fail")
        if not post_data.get('author'):
            return jsonify(msg="author是必传参数!", status="fail")
        if post_data.get('read_status') is None:
            return jsonify(msg="read_status是必传参数!", status="fail")
        book_list = select_data_all()
        id_list = []
        for i in range(len(book_list)):
            id_list.append(book_list[i]["id"])
        if post_data.get("id") not in id_list and int(post_data.get('id')) not in id_list:
            return jsonify(msg="需要修改的书籍id不存在!", status="fail")
        book_id = post_data.get("id")
        title = post_data.get("title")
        author = post_data.get("author")
        read_status = post_data.get("read_status")
        if read_status != 0 and read_status != 1:
            return jsonify(msg="阅读状态只能为0和1!", status="fail")
        update_data(id=book_id, title=title, author=author, read_status=read_status)
        return jsonify(msg="图书已更新", status="success")

在这里插入图片描述

3、书籍管理_查询接口

1、查询到所有书籍接口:

@book.route("/queryBook", methods=["GET"])
def query_book():
    books = select_data_all()
    return jsonify(msg="查询所有书籍成功", book=books, status="success")

在这里插入图片描述

4、书籍管理_删除接口

1、删除书籍接口:

@book.route("/deleteBook", methods=["DELETE"])
def delete_book():
    if request.method == "DELETE":
        post_data = request.get_json()
        if not post_data.get('id'):
            return jsonify(msg="id是必传参数", status="fail")
        id = post_data.get('id')
        result = delete_data(id)
        if result is False:
            return jsonify(msg="需要删除的图书不存在", status="fail")
        else:
            return jsonify(msg="图书被删除", status="fail")

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用 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 资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值