Flask 框架(六)— Restful、PostMan工具

1.Restful

Restful API 是用于在前端与后台进行通信的一套规范,它可以通过一套统一的接口为所有客户端提供 web 服务,实现前后端分离,节省开发时间。Restful API 由后台也就是 SERVER 来提供前端来调用。前端调用 API 向后台发起 HTTP 请求 ,后台响应请求将处理结果反馈给前端。也就是说 Restful 是典型的基于 HTTP 的协议 。

Restful API 有以下的设计原则和规范:

(1) 资源:首先是弄清楚资源的概念。资源就是网络上的一个实体,一段文本,一张图片或者一首歌曲。资源总是要通过一种载体来反应它的内容。文本可以用TXT,也可以用HTML或者XML、图片可以用JPG格式或者PNG格式,JSON是现在最常用的资源表现形式。

(2)统一接口:Restful 风格的数据元操CRUD(create,read,update,delete)分别对应HTTP方法:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口。

(3)URI:可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。一般的,每个资源至少有一个URI与之对应,最典型的URI就是URL。

(4)url 链接中,不能有动词,只能有名词。并且对于一些名词,如果出现复数,那么应该在后面加 s。比如:获取文章列表,应该使用 articles,而不应该使用 get_article。

   Flask-Restful 插件

   使用 Flask-Restful,那么定义视图函数的时候,就要继承自 flask-restful.Resource 类,然后根据当前请求的 method 来定义相应的方法。

   使用前先进行安装:pip install flask-restful,并进行绑定;

from flask import Flask
from flask_restful import Api

app = Flask(__name__)

# RestfulApi 绑定 app
api = Api(app)

if __name__ == '__main__':
    print(app.url_map)
    app.run()

   在 goods/views.py 文件下输出字段,在使用 ORM 模型或者自定义的模型的时候,会自动的获取模型中的相应的字段,生成 json 数据,然后再返回给客户端。这里还需要导入 flask_restful.marshal_with 装饰器,并且需要写一个字典,来指示需要返回的字段,以及该字段的数据类型。

from flask_restful import Resource, reqparse, marshal_with, fields

class GoodsView(Resource):
    def get(self):
        return {'id':1,'name':'Jocelyn'}

    return_fields = {
        'id': fields.Integer,
        'username':fields.FormattedString('pre-{username}'),
        'age':fields.Integer(default=20),
        'favirate':fields.List(fields.String),
        #  复杂结构
        'school':fields.Nested({
            'address':fields.String
        })
    }

    @marshal_with(return_fields)
    def post(self):
        # username password email
        # 创建 reqparse 对象
        parser = reqparse.RequestParser()
        # 书写验证规则 add_argument
        parser.add_argument('username',required=True)
        parser.add_argument('password',required=True)
        parser.add_argument('email',required=True,type=str)

        # 从数据库中查询到的信息
        user = {
            'id':1,
            'username':'Jocelyn',
            'password':'112233',
            # 'age':20
            'favirate':['篮球','足球','乒乓球'],
            'school': {'name': '新华小学', 'address': '深圳龙华'}
        }

        # 开启验证
        try:
            args = parser.parse_args()
            return user

        except:
            return {'msg':'数据不合规范'}

   要对上述进行验证时,我们可以用到 PostMan 工具。

2.PostMan 工具

   若要调试网址发送请求整个过程中的请求信息、响应信息等,则可使用 PostMan 工具。

   以上述为例,POST 请求时,在 Headers 中填写要求;若是 GET 请求,则是在 Params 中;

Flask 框架(六)— Restful、PostMan工具

上一篇:MySQL 时间函数加减计算


下一篇:FLASK+VUE--前后端分离(三)- VUE+Element-UI搭建简单的登陆入口