Restful 路由致力于使所有不同应用程序的路由保持一致。 REST 是表述性状态转移。它以一致的、人类可读的、机器可读的方式使用 HTTP。
标准是 GET、POST、PATCH、PUT 和 DELETE。
下面将给出 Flask API 数据库中的几个静态路由的示例,用于从前端获取/向前端提供信息并执行所需的操作。
使用 Flask 在服务器端对用户进行 GET 的示例使用以下代码。
首先您还需要导入这些项目。稍后将在 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/", endpoint="user")
为了进一步解释删除中发生的与获取不同的事情,有几件事。首先,它只是删除一个用户,因此您需要创建一个新资源。它的设置类似,但不是复数。
然后创建删除函数。它需要两个参数,因为您需要传入从前端发送的 id 来确定要删除哪个用户。然后您将使用 db session delete 并 commit 来更新数据库。之后,您返回一个空响应,因为没有任何内容可发回以及删除状态 (204)。
最后您需要创建资源。这次使用 UserResource。该路径将有所不同,为单一的,并且具有传递到前端的 id,并且端点也是单一的。
RESTful 路由使得在不同应用程序之间切换时有一个标准,每个人都可以遵循后端路由并知道标准化的路径。此外,它使路径更清晰、更易于阅读。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3