Flask_RESTful之简介


Restful

  • 就是用来写接口(url)的规则。
  • REST指的是一组架构约束条件和原则。
  • 满足这些约束条件和原则的应用程序或设计就是 RESTful
  • REST是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。
  • 它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次。
  • restful接口规范是用于在前端与后台进行通信的一套规范。使用这个规范可以让前后端开发变得更加轻松。

Flask_RESTful

  • Flask-Restful是一个专门用来写restful api的一个插件
  • 使用它可以快速的集成restful api接口功能。
  • 在系统的纯api的后台中,这个插件可以节省很多时间。

Flask_RESTful缺点:

  • 如果在普通的网站中,这个插件就没有优势了
  • 因为在普通的网站开发中,是需要去渲染HTML代码的,
  • Flask-Restful在每个请求中都是返回json格式的数据。

Flask_RESTful安装

  • pip install flask-restful

适用场景

  • 一个系统的数据库数据,展现的平台有PC端、移动端、app端、ios端。
  • 前端工程师:都遵循RESTful编程规范
  • 后端工程师:都遵循RESTful编程规范
  • 最终结果:开发效率高,便于管理

协议

  • http或者https协议。

数据传输格式

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

url链接规则

  • url链接中,不能有动词,只能有名词。
  • 并且对于一些名词,如果出现复数,那么应该在后面加s

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

Flask_RESTful基本使用

  • 定义Restful的类视图:
  1. flask_restful中导入Api,来创建一个api对象。

  2. 写一个类视图,继承自Resource类,然后在类视图中,使用想要的请求方式来定义相应的方法,比如想要将这个类视图只能采用post请求,那么就定义一个post方法。

  3. 使用api.add_resource来添加类视图与url


from flask import Flask,url_for,render_template 
from flask_restful import Api,Resource 

app = Flask(__name__) 

# 创建一个api对象
api = Api(app) 

#定义一个类视图
class LoginView(Resource):  
	def post(self): 
		return {"flag":"yes"} #字典 

	def get(self): 
		return {"flag":"no"} 

#可支持多个url映射
api.add_resource(LoginView,'/login/','/login2/',endpoint="login") 

#应用上下文
with app.test_request_context():
	#不写`endpoint`,那么将会使用视图的名字的小写(所有都小写)来作为`endpoint`。 
	# print(url_for('loginview')) 
	#如果指定了endpoint,就只能使用endpoint指定的值创建url
	print(url_for('login')) 

@app.route('/') 
def hello_world(): 
	return render_template('index.html') 

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


Flask_RESTful特点

  • 如果返回json数据,使用flask_restful
  • 如果是渲染模版,采用之前的方式,就是app.route的方式
  • url还是跟之前的一样,可以传递参数,也跟之前的不一样,可以指定多个url
  • endpoint是用来给url_for反转url的时候指定的。
  • 如果不写endpoint,那么将会使用视图的名字的小写来作为endpoint
  • 可以使用postman接口测试工具测试post等请求结果。

你可能感兴趣的:(Flask_RESTful之简介)