Flask-RESTful 是一个 Flask 扩展,它添加了快速构建 REST APIs 的支持。它当然也是一个能够跟你现有的ORM/库协同工作的轻量级的扩展。Flask-RESTful 鼓励以最小设置的最佳实践。如果你熟悉 Flask 的话,Flask-RESTful 应该很容易上手。
1、一个最小的API
#-*-coding:utf-8-*-
from flask import Flask
from flask_restful import Api,Resource
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)
运行此脚本,可在pycharm控制台看到:
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 303-672-181
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在浏览器中访问 http://127.0.0.1:5000/,可保存此json文件。
2、资源丰富的路由(Resourceful Routing)
Flask-RESTful 提供的最主要的基础就是资源(resources)。资源(Resources)是构建在 Flask 可拔插视图 之上,只要在你的资源(resource)上定义方法就能够容易地访问多个 HTTP 方法。
#-*-coding:utf-8-*-
from flask import Flask,request
from flask_restful import Api,Resource
app = Flask(__name__)
api = Api(app)
todos = {}
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,'/<string:todo_id>')
if __name__ == "__main__":
app.run(debug=True)
启动后,通过request库测试:
#-*-coding:utf-8-*-
from requests import put,get
if __name__ == "__main__":
temp = put('http://127.0.0.1:5000/todo1',data={