Flask-RESTful学习笔记(二):资源及路由

Flask-RESTful编写接口,是通过编写一个个Resource类实现的。

# coding=utf-8
from flask_restful import Resource, Api
from flask import Flask, request


app = Flask(__name__)
api = Api(app)

todos = {}  # 用来存放数据的字典


class SimpleResource(Resource):

    def get(self, todo_id):
        # 查询接口
        # get请求中的参数为todo_id,并且直接返回todo_id及其在todos中的值组成的字典
        return {todo_id: todos[todo_id]}, 201, {'Etag': 'some-opaque-string'}    # 返回get请求的内容,自定义返回码, 头部

    def put(self, todo_id):
        # put新增接口
        # 将请求数据中key为data的值
        todos[todo_id] = request.form['data']
        return {todo_id: todos[todo_id]}


# add_resource时,制定资源的路由,字符串todo_id与SimpleResource中使用的一致
api.add_resource(SimpleResource, '/')

if __name__ == '__main__':
    app.run(debug=True)

测试代码:

import requests


res = requests.put("http://127.0.0.1:5000/todo2", data={"data":"test todo"})
print res.status_code
print res.content

res = requests.get("http://127.0.0.1:5000/todo2")
print res.status_code
print res.content
print res.headers

输出:

第2个请求的返回码使用了自定义的201,头部也增加了自定义头部的信息。

 

200
{
    "todo2": "test todo"
}

201
{
    "todo2": "test todo"
}

{'Date': 'Sat, 27 Jul 2019 10:24:14 GMT', 'Content-Length': '29', 'Etag': 'some-opaque-string', 'Content-Type': 'application/json', 'Server': 'Werkzeug/0.15.2 Python/2.7.16'}

 

你可能感兴趣的:(Flask-RESTful,Flask-RESTful)