前后端分离
示例:
REST API
REST API是前后端分离最佳实践,是开发的一套标准或者说是一套规范,不是框架
- 轻量,直接通过http,不需要额外的协议,通常以post/get/put/delete操作
- 面向资源,一目了然,具有自解释性
- 数据描述简单,一般通过json或者xml做数据通讯
REST,全称Representational State Transfer,翻译过来是“表现层状态转换”。表现层,即“资源”的具体呈现形式,网络上的所有实体,比如一张图片,都可以看作是一个资源。对于每一个资源,都有一个URI(统一资源定位符)可以对它进行访问。
客户端可以通过HTTP这种无状态协议,使服务端发生“状态转化”,其中包含了五种基本操作:
- GET:获取资源
- POST:新建或者更新资源
- PUT:更新资源(全部修改)
- PATCH:更新资源(部分修改)
- DELETE:删除资源
flask-restful
安装与初始化
pip install flask-restful
from flask_restful import Api
api = Api()
api.init_app(app)
一个小的API
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class HelloWorld(Resource):
def get(self):
return {
'hello': 'world'}
api.add_resource(HelloWorld, '/')
if __name__ == '__main__':
app.run(debug=True)
@marshal_with()
如何向前端展示你的资源呢?加入前端发起一个get请求,你要向他返回数据库中user表的所有用户信息,可以像下面这样,通过marshal_with装饰器来定义展示格式:
## 定义你要展示的资源,并把这些格式告诉给marshal
user_fields = {
"id": fields.Integer,
"name": fields