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:从服务器上删除资源。

状态码

状态码原因描述描述
200OK服务器成功响应客户端的请求。
400INVALID REQUEST用户发出的请求有错误,服务器没有进行新建或修改数据的操作
401Unauthorized用户没有权限访问这个请求
403Forbidden因为某些原因禁止访问这个请求
404NOT FOUND用户请求的url不存在
406NOT Acceptable用户请求不被服务器接收(比如服务器期望客户端发送某个字段,但是没有发送)。
500Internal 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等请求结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值