Flask 创建RESTful风格接口

416 阅读1分钟

1.简介flask-restful

学习flask路由的时候,可以通过app.route来指定HTTP的请求方法(GET、POST、PUT、DELETE等),并在请求函数中根据不同的请求方法,执行不同的业务逻辑。这样就已经实现一个简单的Restful请求了。但是在flask中有更好的方法来实现,那就是flask-restful扩展了。

RESTful架构风格规定,数据的元操作,即CRUD(即数据的增删查改)操作,分别对应于HTTP方法,GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅仅通过HTTP方法,就可以完成对数据的增删查改工作。

2.安装flask-restful

常规操作,通过pip安装

pip install flask-restful

3.使用flask-restful

插件安装好后,就可以导入模块了,看下面的示例

from flask import Flask, jsonify
from flask_restful import Api, Resource, reqparse

# 创建演示数据
USERS = [
    {"name": "George"},
    {"name": "Hartman"},
    {"name": "Carnell"},
    {"name": "Darwin"}
]

# 创建包含3个方法的对象
class Users(Resource):
    # get: localhost:5000/user
    def get(self):
        return jsonify(USERS)

    """
    post: localhost:5000/user
    {
        "name":"lucifer"
    }
    """
    def post(self):
        args = reqparse.RequestParser() \
            .add_argument('name', type=str, location='json', required=True, help="名字不能为空") \
            .parse_args()

        if args['name'] not in USERS:
            USERS.append({"name": args['name']})

        return jsonify(USERS)
    # delete: localhost:5000/user
    def delete(self):
        USERS = []
        return jsonify(USERS)

app = Flask(__name__)
api = Api(app, default_mediatype="application/json")
# 添加资源
api.add_resource(Users, '/user')

if __name__ == '__main__':
    # 启动服务
    app.run()