使用 Python 构建简单 REST API

使用 Python 构建简单 REST API

1. 概述

本技术文档旨在指导开发者使用 Python 框架 Flask 构建一个基本的 REST API。通过学习本指南,您将掌握创建、读取、更新和删除 (CRUD) 操作的基本知识,并能够使用 Python 构建自己的 API。

2. 安装依赖

首先,您需要确保已安装 Python 和 Flask 框架。您可以使用 pip 工具安装 Flask:

pip install Flask

3. 创建基本 API 结构

创建名为 app.py 的文件,并在其中定义 Flask 应用程序:

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/')
def index():
    return '欢迎使用我的 REST API!'

if __name__ == '__main__':
    app.run(debug=True)

这段代码创建了一个 Flask 应用程序,并定义了一个简单的路由 /,返回一个欢迎信息。

4. 定义 API 资源

我们将创建一个名为 todos 的资源,用于管理待办事项列表。我们将使用一个列表 todos 来存储待办事项信息:

todos = [
    {'id': 1, 'task': '学习 Python', 'completed': False},
    {'id': 2, 'task': '构建 REST API', 'completed': False}
]

5. 实现 CRUD 操作

5.1 获取所有待办事项 (GET /todos)

@app.route('/todos', methods=['GET'])
def get_todos():
    return jsonify(todos)

此路由返回存储在 todos 列表中的所有待办事项,以 JSON 格式呈现。

5.2 获取特定待办事项 (GET /todos/)

@app.route('/todos/<id>', methods=['GET'])
def get_todo(id):
    todo = next((t for t in todos if t['id'] == int(id)), None)
    if todo:
        return jsonify(todo)
    else:
        return jsonify({'error': '待办事项未找到'}), 404

此路由获取特定 id 的待办事项。如果找到,则返回该待办事项的 JSON 格式;否则返回 404 错误。

5.3 创建新待办事项 (POST /todos)

@app.route('/todos', methods=['POST'])
def create_todo():
    data = request.get_json()
    new_todo = {'id': len(todos) + 1, 'task': data['task'], 'completed': False}
    todos.append(new_todo)
    return jsonify(new_todo), 201

此路由接收 JSON 格式的待办事项信息,创建一个新的待办事项并将其添加到 todos 列表中。

5.4 更新待办事项 (PUT /todos/)

@app.route('/todos/<id>', methods=['PUT'])
def update_todo(id):
    todo = next((t for t in todos if t['id'] == int(id)), None)
    if todo:
        data = request.get_json()
        todo['task'] = data.get('task', todo['task'])
        todo['completed'] = data.get('completed', todo['completed'])
        return jsonify(todo)
    else:
        return jsonify({'error': '待办事项未找到'}), 404

此路由接收 JSON 格式的更新信息,更新特定 id 的待办事项。

5.5 删除待办事项 (DELETE /todos/)

@app.route('/todos/<id>', methods=['DELETE'])
def delete_todo(id):
    todo = next((t for t in todos if t['id'] == int(id)), None)
    if todo:
        todos.remove(todo)
        return jsonify({'message': '待办事项已删除'}), 204
    else:
        return jsonify({'error': '待办事项未找到'}), 404

此路由删除特定 id 的待办事项。

6. 运行 API

运行 app.py 文件即可启动 API:

python app.py

API 将在默认地址 http://127.0.0.1:5000/ 上运行。

7. 总结

本技术文档介绍了使用 Python 和 Flask 框架构建简单 REST API 的基础知识。您可以根据自己的需求扩展此 API,例如使用数据库存储数据、添加身份验证机制等。

8. 参考资料

posted @   nisan  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
无觅相关文章插件,快速提升流量
点击右上角即可分享
微信分享提示