首页  >  文章  >  后端开发  >  Restful 路由 - Flask API 示例

Restful 路由 - Flask API 示例

WBOY
WBOY原创
2024-08-23 06:02:31608浏览

Restful Routing - A Flask API Example

Restful 路由是为了使路由在所有不同的应用程序中保持一致。 REST 是表述性状态转移。它以一致的、人类可读的、机器可读的方式使用 HTTP。

标准是 GET、POST、PATCH、PUT 和 DELETE。

下面将给出一个 Flask API 数据库中的几个静态路由的示例,用于从前端获取/向前端提供信息并执行所需的操作。

使用 Flask 在服务器端获取用户的示例使用以下代码。

首先,您还需要导入这些项目。稍后将在 DELETE 示例中使用 db 导入。

from flask import request (*Used for POST and PATCH*)
from config import db, api, app 

from flask_restful import Resource
from models.user import User

您的配置文件应如下所示设置才能使导入正常工作。

 db = SQLAlchemy(app=app, metadata=metadata)
 api = Api(app=app)

用户路由中的 GET 代码:

 class UsersResource(Resource):
     def get(self):
        users = [user.to_dict() for user in User.query.all()]
        return users, 200

 api.add_resource(UsersResource, "/api/users", endpoint="users")

分解此代码。

您需要为用户资源创建一个类并将资源作为参数放入。

接下来为 get 创建一个函数。该函数将查询用户表,然后创建所有用户的列表,并将其转换为字典进行传输,以便它们可以在网页上以 JSON 形式显示。然后,您返回列表以及请求成功的状态代码 200。

最后您需要创建资源。命名您正在使用的资源以及路径和端点。在路径前面添加/api,以便托管网站能够辨别前后端路由。

对于 DELETE,您必须为单个用户删除创建另一个资源。请参阅下面的代码:

 class UserResource(Resource):
     def delete(self, id):
         user= User.query.get(id)
         db.session.delete(user)
         db.session.commit()
         return {}, 204

 api.add_resource(UserResource, "/api/user/<int:id>", 
 endpoint="user")

为了进一步解释删除中发生的与获取不同的事情,有几件事。首先,它只是删除一个用户,因此您需要创建一个新资源。它的设置类似,但不是复数。

然后创建删除函数。它需要两个参数,因为您需要传入从前端发送的 id 来确定要删除哪个用户。然后您将使用 db session delete 并 commit 来更新数据库。之后,您返回一个空响应,因为没有任何内容可发回以及删除状态 (204)。

最后您需要创建资源。这次使用 UserResource。该路径将有所不同,为单一的,并且具有传递到前端的 id,并且端点也是单一的。

RESTful 路由使得在不同应用程序之间切换时有一个标准,每个人都可以遵循后端路由并知道标准化的路径。此外,它使路径更清晰、更易于阅读。

以上是Restful 路由 - Flask API 示例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn