美文网首页
Flask-RESTful

Flask-RESTful

作者: SingleDiego | 来源:发表于2020-05-21 16:07 被阅读0次

安装

使用 pip 安装 Flask-RESTful

pip install flask-restful




一个最小的 API

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)

把上述代码保存为 api.py,并用 $ python api.py 运行。浏览器打开 http://127.0.0.1:5000/ 就能看到:

{"hello": "world"}
浏览器截图

也可以使用系统的 curl (详细用法见:curl 的用法指南)测试你的 API:

$ curl http://127.0.0.1:5000/




Resource

Flask-RESTful 是通过 Resource 类上定义方法来实现各种 HTTP 方法的访问控制的。

from flask import Flask, request
from flask_restful import Resource, Api

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

todos = {1: 'learn flask'}

class TodoSimple(Resource):
    def get(self, todo_id):
        return {todo_id: todos[todo_id]}

    def put(self, todo_id):
        todos[todo_id] = request.form['data']
        return {todo_id: todos[todo_id]}

api.add_resource(TodoSimple, '/<int:todo_id>')

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

上述代码定义了 Resource 类,当用 get 方法访问该 API 时,get() 函数就会执行,其他 postputdelete 方法同理。同时可以用 flask 的方法设置 url 的参数。

带上状态码可以这样操作:

class TodoSimple(Resource):
    def get(self, todo_id):
        return {todo_id: todos[todo_id]}, 201

相关文章

网友评论

      本文标题:Flask-RESTful

      本文链接:https://www.haomeiwen.com/subject/xhfzohtx.html