Flask框架之Restful--介绍--下载--基本使用

简介: Flask框架之Restful--介绍--下载--基本使用

目录


Restful


概念


架构的主要原则


适用场景


协议


数据传输格式


url链接规则


HTTP请求方式


状态码


Restful的基本使用


介绍


优势


缺点


安装


基本使用


注意




Restful


概念


RESTful(Representational State Transfer)是一种用于设计网络应用程序的架构风格和原则,尤其适用于Web服务。它通过使用标准的HTTP方法(如GET、POST、PUT和DELETE)来结构化和与资源进行交互。


架构的主要原则


1.客户端-服务器架构:客户端和服务器是分离的实体,在网络上进行通信。客户端负责用户界面和用户体验,而服务器管理资源并处理请求。


2.无状态通信:客户端向服务器发出的每个请求都应包含服务器理解和处理请求所需的所有必要信息。服务器不会在请求之间保留任何特定于客户端的状态。


3.统一接口:RESTful服务应具有一致和标准化的接口。接口通常包括通过URI(统一资源标识符)识别资源,使用HTTP方法和状态码行自我描述的消息,以及作为应用程序状态引擎(HATEOAS)的超媒体,以提供导航API的链接。


4.面向资源:REST将所有内容都视为资源,可以是物理实体(例如对象)或逻辑实体(例如对象集合)。资源通常通过URI进行标识,并可以使用HTTP方法进行操作。


5.无状态服务器:服务器不在请求之间存储任何客户端状态。每个请求都被视为独立的事务,并且服务器不维护客户端的上下文。


6.可缓存:来自RESTful服务的响应可以根据服务器提供的缓存控制头在客户端或中间服务器上进行缓存。


适用场景


一个系统的数据库数据,展现的平台有PC端、移动端、app端、ios端。


前端工程师:都遵循RESTful编程规范


后端工程师:都遵循RESTful编程规范


最终结果:开发效率高,便于管理


协议


用http或者https协议。


数据传输格式


数据传输的格式应该都用json格式。


url链接规则


url链接中,不能有动词,只能有名词。


并且对于一些名词,如果出现复数,那么应该在后面加s。


比如:获取新闻列表,应该使用/news/,而不应该使用/get_news/


HTTP请求方式


GET:从服务器上获取资源。


POST:在服务器上新增或者修改一个资源。


PUT:在服务器上更新资源。(客户端提供所有改变后的数据)


PATCH:在服务器上更新资源。(客户端只提供需要改变的属性)


DELETE:从服务器上删除资源。


状态码

状态码 原因描述 描述
200 OK 服务器成功响应客户端的请求。
400 INVALID REQUEST 用户发出的请求有错误,服务器没有进行新建或修改数据的操作
401 Unauthorized 用户没有权限访问这个请求
403 Forbidden 因为某些原因禁止访问这个请求

404

NOT FOUND

用户请求的url不存在

406

NOT Acceptable

用户请求不被服务器接收(比如服务器期望客户端发送某个字段,但是没有发送)。

500

Internal 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,Api
app = 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/',endpoint='login')
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(debug=True)

注意

1.如果你想返回json数据,那么就使用flask_restful,如果你是想渲染模版,那么还是采用之前的方式,就是app.route的方式。


2.url还是跟之前的一样,可以传递参数。也跟之前的不一样,可以指定多个url。


3.endpoint是用来给url_for反转url的时候指定的。如果不写endpoint,那么将会使用视图的名字的小写来作为endpoint。


4.add_resource的第二个参数是访问这个视图函数的url,这个url可以跟之前的route一样,可以传递参数,并且还有一点不同的是,这个方法可以传递多个url来指定这个视图函数


相关文章
|
2月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
48 4
|
11天前
|
JSON 关系型数据库 测试技术
使用Python和Flask构建RESTful API服务
使用Python和Flask构建RESTful API服务
|
28天前
|
JavaScript 中间件 API
Node.js进阶:Koa框架下的RESTful API设计与实现
【10月更文挑战第28天】本文介绍了如何在Koa框架下设计与实现RESTful API。首先概述了Koa框架的特点,接着讲解了RESTful API的设计原则,包括无状态和统一接口。最后,通过一个简单的博客系统示例,详细展示了如何使用Koa和koa-router实现常见的CRUD操作,包括获取、创建、更新和删除文章。
39 4
|
1月前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
33 2
|
1月前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
构建RESTful APIs:使用Python和Flask
30 1
|
2月前
|
JSON API 数据格式
使用Python和Flask构建简单的RESTful API
【10月更文挑战第12天】使用Python和Flask构建简单的RESTful API
47 1
|
2月前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
【10月更文挑战第12天】本文介绍了如何使用Python和Flask构建一个简单的RESTful API。首先概述了API的重要性及RESTful API的基本概念,接着详细讲解了Flask框架的特性和安装方法。通过创建一个基本的Flask应用,定义了处理“图书”资源的GET、POST、PUT和DELETE方法的路由,展示了如何处理请求和响应,以及如何进行错误处理。最后,提供了运行和测试API的方法,总结了Flask在构建RESTful API方面的优势。
37 1
|
2月前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
【10月更文挑战第10天】本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web应用框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了代码示例。通过这些步骤,读者可以快速掌握使用Flask构建RESTful API的方法。
52 1
|
2月前
|
Python
Flask学习笔记(二):基于Flask框架上传图片到服务器端并原名保存
关于如何使用Flask框架上传图片到服务器端并以其原名保存的教程。
79 1
|
2月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
31 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件