ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-01-09 16:03:28  阅读:187  来源: 互联网

标签:__ PostMan Flask fields URI flask Restful 资源


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 中;

标签:__,PostMan,Flask,fields,URI,flask,Restful,资源
来源: https://blog.csdn.net/m0_54143674/article/details/122390105

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有