使用 Python 构建一个简单的 REST API
使用 Python 构建一个简单的 REST API
简介
本文档将引导您使用 Python 和 Flask 框架构建一个简单的 REST API。我们将创建一个 API,用于管理一个虚拟的书籍数据库。
准备工作
- Python 环境: 确保您的系统上安装了 Python 3.x。
- Flask 框架: 使用 pip 安装 Flask:
pip install Flask
项目结构
project/
├── app.py
└── data/
└── books.json
1. 创建应用程序文件 (app.py)
from flask import Flask, jsonify, request
app = Flask(__name__)
# 加载书籍数据
def load_books():
with open("data/books.json", "r") as f:
return json.load(f)
# 初始化书籍数据
books = load_books()
# 获取所有书籍
@app.route("/books", methods=["GET"])
def get_books():
return jsonify(books)
# 获取特定书籍
@app.route("/books/<int:book_id>", methods=["GET"])
def get_book(book_id):
for book in books:
if book["id"] == book_id:
return jsonify(book)
return jsonify({"error": "Book not found"}), 404
# 创建新书籍
@app.route("/books", methods=["POST"])
def create_book():
new_book = request.get_json()
books.append(new_book)
return jsonify({"message": "Book created successfully"}), 201
# 更新书籍
@app.route("/books/<int:book_id>", methods=["PUT"])
def update_book(book_id):
for i, book in enumerate(books):
if book["id"] == book_id:
books[i] = request.get_json()
return jsonify({"message": "Book updated successfully"}), 200
return jsonify({"error": "Book not found"}), 404
# 删除书籍
@app.route("/books/<int:book_id>", methods=["DELETE"])
def delete_book(book_id):
for i, book in enumerate(books):
if book["id"] == book_id:
del books[i]
return jsonify({"message": "Book deleted successfully"}), 204
return jsonify({"error": "Book not found"}), 404
if __name__ == "__main__":
app.run(debug=True)
2. 创建书籍数据文件 (data/books.json)
[
{
"id": 1,
"title": "The Hitchhiker's Guide to the Galaxy",
"author": "Douglas Adams",
"genre": "Science Fiction"
},
{
"id": 2,
"title": "1984",
"author": "George Orwell",
"genre": "Dystopian"
}
]
运行 API
在终端中运行以下命令:
python app.py
现在,您的 API 应该在 http://127.0.0.1:5000/
上运行。
测试 API
您可以使用工具如 Postman 或 curl 来测试 API 端点。
例如,使用 curl 获取所有书籍:
curl http://127.0.0.1:5000/books
总结
本文档演示了如何使用 Python 和 Flask 构建一个简单的 REST API。您可以根据需要扩展此 API,添加更多端点和功能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?