简介
首先,安装Flask
1 |
pip install flask |
假设那你已经了解RESTful API的相关概念,如果不清楚,可以阅读我之前写的这篇博客Designing a RESTful Web API.
Flask是一个使用Python开发的基于Werkzeug的Web框架。
Flask非常适合于开发RESTful API,因为它具有以下特点:
- 使用Python进行开发,Python简洁易懂
- 容易上手
- 灵活
- 可以部署到不同的环境
- 支持RESTful请求分发
我一般是用curl命令进行测试,除此之外,还可以使用Chrome浏览器的postman扩展。
资源
首先,我创建一个完整的应用,支持响应/, /articles以及/article/:id。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from flask import Flask, url_for app = Flask(__name__) @app.route('/') def api_root(): return 'Welcome' @app.route('/articles') def api_articles(): return 'List of ' + url_for('api_articles') @app.route('/articles/<articleid>') def api_article(articleid): return 'You are reading ' + articleid if __name__ == '__main__': app.run() |
可以使用curl命令发送请求:
1 |
curl http://127.0.0.1:5000/ |
响应结果分别如下所示:
1 2 3 4 5 6 7 8 |
GET / Welcome GET /articles List of /articles GET /articles/123 You are reading 123 |
路由中还可以使用类型定义:
1 |
@app.route('/articles/<articleid>') |
上面的路由可以替换成下面的例子:
1 2 3 |
@app.route('/articles/<int:articleid>') @app.route('/articles/<float:articleid>') @app.route('/articles/<path:articleid>') |
默认的类型为字符串。
请求REQUESTS
请求参数
假设需要响应一个/hello请求,使用get方法,并传递参数name
1 2 3 4 5 6 7 8 |
from flask import request @app.route('/hello') def api_hello(): if 'name' in request.args: return 'Hello ' + request.args['name'] else: return 'Hello John Doe' |
服务器会返回如下响应信息:
1 e" data-settings=" minimize scroll-always" style=" margin-top: 12px; margin-bottom: 12px; font-size: 13px !important; line-height: 15px !important;">
假设那你已经了解RESTful API的相关概念,如果不清楚,可以阅读我之前写的这篇博客Designing a RESTful Web API. Flask是一个使用Python开发的基于Werkzeug的Web框架。
我一般是用curl命令进行测试,除此之外,还可以使用Chrome浏览器的postman扩展。 资源首先,我创建一个完整的应用,支持响应/, /articles以及/article/:id。
可以使用curl命令发送请求:
响应结果分别如下所示:
路由中还可以使用类型定义:
上面的路由可以替换成下面的例子:
默认的类型为字符串。 请求REQUESTS请求参数假设需要响应一个/hello请求,使用get方法,并传递参数name
服务器会返回如下响应信息:
|