Python 语言 用 Flask RESTful 设计电影评分 API 支持 GET/POST 请求

Python阿木 发布于 2025-06-09 10 次阅读


Flask-RESTful 设计电影评分 API

随着互联网的快速发展,电影已经成为人们日常生活中不可或缺的一部分。为了方便用户获取电影信息,同时提供一种互动的方式,我们可以设计一个电影评分 API。本文将使用 Flask-RESTful 框架,结合 Python 语言,实现一个简单的电影评分 API,支持 GET 和 POST 请求。

环境准备

在开始编写代码之前,我们需要准备以下环境:

1. Python 3.x
2. Flask
3. Flask-RESTful

确保你已经安装了 Python 和 Flask。然后,使用以下命令安装 Flask-RESTful:

bash
pip install flask-restful

API 设计

在设计电影评分 API 时,我们需要考虑以下功能:

1. 获取电影列表
2. 获取电影详情
3. 添加电影评分

以下是 API 的基本路由设计:

- GET /movies:获取电影列表
- GET /movies/:获取电影详情
- POST /movies//ratings:添加电影评分

代码实现

下面是使用 Flask-RESTful 框架实现的 API 代码:

python
from flask import Flask, request
from flask_restful import Resource, Api, reqparse

app = Flask(__name__)
api = Api(app)

模拟电影数据库
movies = [
{'id': 1, 'title': 'The Shawshank Redemption', 'rating': 9.3},
{'id': 2, 'title': 'The Godfather', 'rating': 9.2},
{'id': 3, 'title': 'The Dark Knight', 'rating': 9.0}
]

获取电影列表
class MovieList(Resource):
def get(self):
return movies

获取电影详情
class Movie(Resource):
def get(self, id):
movie = next((m for m in movies if m['id'] == id), None)
if movie:
return movie
else:
return {'message': 'Movie not found'}, 404

添加电影评分
class MovieRating(Resource):
def post(self, id):
parser = reqparse.RequestParser()
parser.add_argument('rating', type=float, required=True, help='Rating cannot be blank')
args = parser.parse_args()
rating = args['rating']
for movie in movies:
if movie['id'] == id:
movie['rating'] = rating
return movie
return {'message': 'Movie not found'}, 404

添加路由
api.add_resource(MovieList, '/movies')
api.add_resource(Movie, '/movies/')
api.add_resource(MovieRating, '/movies//ratings')

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

测试 API

在终端中运行上述代码,启动 Flask 应用。然后,使用以下命令测试 API:

bash
curl http://127.0.0.1:5000/movies

这将返回电影列表。接下来,测试获取电影详情:

bash
curl http://127.0.0.1:5000/movies/1

测试添加电影评分:

bash
curl -X POST -d "rating=9.5" http://127.0.0.1:5000/movies/1/ratings

这将返回更新后的电影详情。

总结

本文介绍了如何使用 Flask-RESTful 框架和 Python 语言设计一个简单的电影评分 API。通过实现 GET 和 POST 请求,我们为用户提供了一种方便的方式来获取电影信息和添加电影评分。在实际应用中,可以根据需求扩展 API 功能,如添加用户认证、数据库存储等。