2-6-flask框架-扩展-接口开发-使用flask-restful接口开发

Flask-RESTful

Flask-RESTful是用于快速构建REST API的Flask扩展。

flask-restful官方文档:https://flask-restful.readthedocs.io/en/latest/quickstart.html#a-minimal-api

用flask原生框架和使用flask-restful框架写api接口有什么不一样的吗?

设计理念不同:Flask原生框架的设计理念是灵活多变,开发者可以自由选择路由和请求方式;Flask-RESTful框架的设计理念是专注于RESTful API开发,提供了简单易用的高层抽象。

功能不同:Flask原生框架提供了一些基本的功能,如路由定义,请求方式定义,响应内容定义,但对于复杂的API开发,需要开发者自行实现;Flask-RESTful框架额外提供了一些高级功能,如资源分类,请求参数校验,返回值自动生成,以及API文档自动生成,帮助开发者更快速、高效地开发API。

总的来说,如果您希望快速、高效地开发RESTful API,可以考虑使用Flask-RESTful框架;如果您希望更加灵活、自由地开发API,可以使用Flask原生框架

安装

pip install flask-restful

快速入手

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)

这是官方文档的一个快速入手的案例

  • 注:flask_restful中返回的字典类型 可以自动转化为json

flask-restful使用蓝图

那么可以在auth.py 写注册相关的接口

from flask import (
    Blueprint, flash, g, redirect, render_template, request, session, url_for
)
from flask_restful import Api, reqparse, abort, Api, Resource


bp = Blueprint('auth', __name__, url_prefix='/auth')
api = Api(bp)


class Register(Resource):

    @staticmethod
    def password_validate(value, name):
        if len(value) < 6 or len(value) > 16:
            raise ValueError(name + ' length must be 6-16')
        return value

    def post(self):
        # 校验入参
        parser = reqparse.RequestParser()
        parser.add_argument('username', required=True, type=str,  nullable=False)
        parser.add_argument('password', required=True, type=self.password_validate,
                            nullable=False, help='invalid: {error_msg}')
        args = parser.parse_args()
        print(f'请求入参:{args}')
        return {
            "code": 0,
            "msg": "success"
        }


# 注册
api.add_resource(Register, '/api/register')

posted @ 2021-08-12 19:48  技术改变命运Andy  阅读(113)  评论(0编辑  收藏  举报