炫酷响应式网站设计,搜索引擎优化培训免费咨询,企业qq下载,打广告的平台Python实战进阶 No1: RESTful API - 基于Flask的实例说明 RESTful API 是一种基于 REST#xff08;Representational State Transfer#xff09; 架构风格的 Web 服务接口设计规范。它使用 HTTP 协议的标准方法#xff08;如 GET、POST、PUT、DELETE 等#xff09;来操作资…Python实战进阶 No1: RESTful API - 基于Flask的实例说明 RESTful API 是一种基于 RESTRepresentational State Transfer 架构风格的 Web 服务接口设计规范。它使用 HTTP 协议的标准方法如 GET、POST、PUT、DELETE 等来操作资源通常以 JSON 或 XML 格式返回数据。以下是 RESTful API 的几个关键特性
无状态性每个请求必须包含所有必要的信息服务器不会保存客户端的状态。统一接口通过标准的 HTTP 方法操作资源URL 表示资源。分层系统可以有多个中间层如负载均衡器、缓存等但客户端无需知道这些细节。支持多种格式通常使用 JSON 或 XML 格式传输数据。 如何使用 RESTful API 构建 Web 应用程序
构建一个基于 RESTful API 的 Web 应用程序通常包括以下几个步骤
定义资源和 URL 路径。使用 HTTP 方法GET、POST、PUT、DELETE操作资源。返回适当的数据格式如 JSON。在客户端通过 HTTP 请求与服务器交互。 Python 实例使用 Flask 构建 RESTful API
以下是一个简单的 Python 程序使用 Flask 框架创建一个 RESTful API用于管理图书列表。
代码实现
from flask import Flask, jsonify, requestapp Flask(__name__)# 模拟的图书数据库
books [{id: 1, title: Python编程, author: 张三},{id: 2, title: Flask入门, author: 李四},{id: 3, title: 机器学习基础, author: 王五}
]# 获取所有图书 (GET)
app.route(/books, methods[GET])
def get_books():return jsonify({books: books})# 根据 ID 获取单本图书 (GET)
app.route(/books/int:book_id, methods[GET])
def get_book(book_id):book next((b for b in books if b[id] book_id), None)if book:return jsonify(book)else:return jsonify({error: Book not found}), 404# 添加新图书 (POST)
app.route(/books, methods[POST])
def add_book():new_book request.get_json()books.append(new_book)return jsonify(new_book), 201# 更新图书信息 (PUT)
app.route(/books/int:book_id, methods[PUT])
def update_book(book_id):updated_data request.get_json()book next((b for b in books if b[id] book_id), None)if book:book.update(updated_data)return jsonify(book)else:return jsonify({error: Book not found}), 404# 删除图书 (DELETE)
app.route(/books/int:book_id, methods[DELETE])
def delete_book(book_id):global booksbooks [b for b in books if b[id] ! book_id]return jsonify({message: Book deleted})if __name__ __main__:app.run(debugTrue)运行和测试 运行程序 将上述代码保存为 app.py然后在终端中运行 python app.py默认情况下Flask 应用会在 http://127.0.0.1:5000/ 启动。 测试 API在 cmd 窗口中运行 或 通过 Html 调用 获取所有图书 curl http://127.0.0.1:5000/books返回结果
{books: [{author: \u5f20\u4e09,id: 1,title: Python\u7f16\u7a0b},{author: \u674e\u56db,id: 2,title: Flask\u5165\u95e8},{author: \u738b\u4e94,id: 3,title: \u673a\u5668\u5b66\u4e60\u57fa\u7840}]
}获取单本图书curl http://127.0.0.1:5000/books/1返回结果
{author: \u5f20\u4e09,id: 1,title: Python\u7f16\u7a0b
}添加新图书 curl -X POST -H Content-Type: application/json -d {\id\: 4, \title\: \人工智能\, \author\: \赵六\} http://127.0.0.1:5000/books 返回结果
{author: \u8d75\u516d,id: 4,title: \u4eba\u5de5\u667a\u80fd
}更新图书信息 curl -X PUT -H Content-Type: application/json -d “{\title\: \深度学习\} http://127.0.0.1:5000/books/1返回结果
{author: \u5f20\u4e09,id: 1,title: \u6df1\u5ea6\u5b66\u4e60
}删除图书curl -X DELETE http://127.0.0.1:5000/books/1返回结果
{message: Book deleted
}总结
通过这个例子我们展示了如何使用 Flask 创建一个简单的 RESTful API 来管理图书数据。你可以根据实际需求扩展功能例如连接数据库、添加用户认证等。RESTful API 的核心思想是通过 HTTP 方法和资源路径实现清晰、可扩展的接口设计。