湘潭营销型网站建设,肥乡邯郸做网站,手机兼职快递录单员,南宁网站推广流程目录
Restful
概念
架构的主要原则
适用场景
协议
数据传输格式
url链接规则
HTTP请求方式
状态码 Restful的基本使用
介绍
优势
缺点
安装 基本使用
注意 Restful
概念
RESTful#xff08;Representational State Transfer#xff09;是一种用于设计网络应用…目录
Restful
概念
架构的主要原则
适用场景
协议
数据传输格式
url链接规则
HTTP请求方式
状态码 Restful的基本使用
介绍
优势
缺点
安装 基本使用
注意 Restful
概念
RESTfulRepresentational State Transfer是一种用于设计网络应用程序的架构风格和原则尤其适用于Web服务。它通过使用标准的HTTP方法如GET、POST、PUT和DELETE来结构化和与资源进行交互。
架构的主要原则 客户端-服务器架构客户端和服务器是分离的实体在网络上进行通信。客户端负责用户界面和用户体验而服务器管理资源并处理请求。 无状态通信客户端向服务器发出的每个请求都应包含服务器理解和处理请求所需的所有必要信息。服务器不会在请求之间保留任何特定于客户端的状态。 统一接口RESTful服务应具有一致和标准化的接口。接口通常包括通过URI统一资源标识符识别资源使用HTTP方法和状态码进行自我描述的消息以及作为应用程序状态引擎HATEOAS的超媒体以提供导航API的链接。 面向资源REST将所有内容都视为资源可以是物理实体例如对象或逻辑实体例如对象集合。资源通常通过URI进行标识并可以使用HTTP方法进行操作。 无状态服务器服务器不在请求之间存储任何客户端状态。每个请求都被视为独立的事务并且服务器不维护客户端的上下文。 可缓存来自RESTful服务的响应可以根据服务器提供的缓存控制头在客户端或中间服务器上进行缓存。
适用场景
一个系统的数据库数据展现的平台有PC端、移动端、app端、ios端。
前端工程师都遵循RESTful编程规范
后端工程师都遵循RESTful编程规范
最终结果开发效率高便于管理
协议 用http或者https协议。 数据传输格式
数据传输的格式应该都用json格式。
url链接规则
url链接中不能有动词只能有名词。
并且对于一些名词如果出现复数那么应该在后面加s。
比如获取新闻列表应该使用/news/而不应该使用/get_news/
HTTP请求方式
GET从服务器上获取资源。
POST在服务器上新增或者修改一个资源。
PUT在服务器上更新资源。客户端提供所有改变后的数据
PATCH在服务器上更新资源。客户端只提供需要改变的属性
DELETE从服务器上删除资源。
状态码
状态码原因描述描述200OK服务器成功响应客户端的请求。400INVALID REQUEST用户发出的请求有错误服务器没有进行新建或修改数据的操作401Unauthorized用户没有权限访问这个请求403Forbidden因为某些原因禁止访问这个请求404NOT FOUND用户请求的url不存在406NOT Acceptable用户请求不被服务器接收比如服务器期望客户端发送某个字段但是没有发送。500Internal server error服务器内部错误比如遇到bug Restful的基本使用
介绍
优势
Flask-Restful是一个专门用来写restful api的一个插件。
使用它可以快速的集成restful api接口功能。
在系统的纯api的后台中这个插件可以帮助我们节省很多时间。
缺点
如果在普通的网站中这个插件就没有优势了因为在普通的网站开发中是需要去渲染HTML代码的
而Flask-Restful在每个请求中都是返回json格式的数据。
安装 pip install flask-restful基本使用
定义Restful的类视图
1. 从flask_restful中导入Api来创建一个api对象。
2. 写一个类视图让他继承自Resource类然后在这个里面使用你想要的请求方式来定义相应的方法比如你想要将这个类视图只能采用post请求那么就定义一个post方法。
3. 使用api.add_resource来添加类视图与url。
from flask import Flask,url_for
# pip install flask-restful
from flask_restful import Resource,Apiapp Flask(__name__)
# 建立Api对象并绑定应用APP
api Api(app)class LoginView(Resource):def get(self):return {flag:True}def post(self):return {flag:False}# 建立路由映射
# api.add_resource(LoginView,/login/)
api.add_resource(LoginView,/login/,/login2/,endpointlogin)with app.test_request_context():# werkzeug.routing.BuildError: Could not build url for endpoint LoginView.# Did you mean loginview instead?# 默认没有写endpoint反向url_for函数通过小写函数名# 如果有多个url会返回第1个URL# print(url_for(loginview))print(url_for(login))if __name__ __main__:app.run(debugTrue)注意 如果你想返回json数据那么就使用flask_restful如果你是想渲染模版那么还是采用之前的方式就是app.route的方式。url还是跟之前的一样可以传递参数。也跟之前的不一样可以指定多个url。endpoint是用来给url_for反转url的时候指定的。如果不写endpoint那么将会使用视图的名字的小写来作为endpoint。add_resource的第二个参数是访问这个视图函数的url这个url可以跟之前的route一样可以传递参数并且还有一点不同的是这个方法可以传递多个url来指定这个视图函数