看过此博客,你将会发现,Python基于Flask开发Restful API,超级简单(本人用力2个多小时搞定此博客)。

  Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug,Python Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西,例如 Request,Response 等等。

  Flask官网地址为:http://flask.pocoo.org/。Python直接使用pip install命令就可以安装到Python集成环境中。

D:\Python\Python36>pip install flask
Collecting flask
Downloading https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (91kB)
100% |████████████████████████████████| 92kB 88kB/s
Collecting click>=5.1 (from flask)
Downloading https://files.pythonhosted.org/packages/34/c1/8806f99713ddb993c5366c362b2f908f18269f8d792aff1abfd700775a77/click-6.7-py2.py3-none-any.whl (71kB)
100% |████████████████████████████████| 71kB 123kB/s
Collecting Werkzeug>=0.14 (from flask)
Downloading https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl (322kB)
100% |████████████████████████████████| 327kB 75kB/s
Collecting itsdangerous>=0.24 (from flask)
Downloading https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz (46kB)
100% |████████████████████████████████| 51kB 67kB/s
Collecting Jinja2>=2.10 (from flask)
Downloading https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl (126kB)
100% |████████████████████████████████| 133kB 41kB/s
Collecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask)
Downloading https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz
Installing collected packages: click, Werkzeug, itsdangerous, MarkupSafe, Jinja2, flask
Running setup.py install for itsdangerous … done
Running setup.py install for MarkupSafe … done
Successfully installed Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.14.1 click-6.7 flask-1.0.2 itsdangerous-0.24
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the ‘python -m pip install –upgrade pip’ command.
 
  首先,我们先快速构建个Web服务,打开一个Python文件,输入下面的内容并运行该文件。然后访问localhost:5000,我们应当可以看到浏览器上输出了Hello Flask!。

  基于Eclipse开发环境,新建TestFlaskHello.py文件,粘贴Flask官网主页中的示例代码。

from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def hello_world():
return ‘Hello Flask!’

if __name__ == ‘__main__’:
app.run()
 

 

 

  在浏览器中输入http://localhost:5000/,将会出现如下结果。

 

 

  第一个Restful API,如此简单,详见示例代码:

from flask import Flask, jsonify

app = Flask(__name__)

tasks = [
{
‘id’: 1,
‘title’: u’Buy groceries’,
‘description’: u’Milk, Cheese, Pizza, Fruit, Tylenol’,
‘done’: False
},
{
‘id’: 2,
‘title’: u’Learn Python’,
‘description’: u’Need to find a good Python tutorial on the web’,
‘done’: False
}
]

@app.route(‘/todo/api/v1.0/tasks’, methods=[‘GET’])
def get_tasks():
return jsonify({‘tasks’: tasks})

if __name__ == ‘__main__’:
app.run(debug=True)
 
  运行结果如下:

 

 

  我们现在拥有一个 get_tasks 的函数,访问的 URI 为 /todo/api/v1.0/tasks,并且只允许 GET 的 HTTP 方法。

  这个函数的响应不是文本,我们使用 JSON 数据格式来响应,Flask 的 jsonify 函数从我们的数据结构中生成。

  使用Postman的Chrome插件,测试Rest API,效果如下:

 https://img-blog.csdn.net/20180712152143239?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW95dw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

  总结本文内容:

  (1)通过pip install flask命令安装Flask;
  (2)基于Eclipse(老Java开发人员的爱好),按Flask官网示例,实践第一个Web应用-Helloworld;
  (3)实践第一个Restful API,URI 为 /todo/api/v1.0/tasks;
  (4)使用Postman插件,测试Rest API。

  是不是很简单,不妨试一试。

  附:Postman插件的安装。选择Chrome应用商店中的“Tabbed Postman – REST Client”扩展程序,添加到Chrome上。

 

 

 

参考:

《Flask 快速入门》 CSDN博客 过了即是客 2017年4月
《使用 Python 和 Flask 设计 RESTful API》 Python 中文学习大本营
《Python入门学习(一),安装Eclipse开发环境》 CSDN博客 肖永威 2017年12月

————————————————
版权声明:本文为CSDN博主「肖永威」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaoyw71/article/details/81014140