Python编程中flask的简介与简单使用


Posted in Python onDecember 28, 2018

flask是一个纯python实现的开源microframework,使用flask可以像java的spring boot一样快速开始基于RestApi的微服务开发。

概要信息

Python编程中flask的简介与简单使用

事前准备

python和pip

[root@liumiaocn ~]# python --version
Python 2.7.5
[root@liumiaocn ~]# pip --version
pip 10.0.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)
[root@liumiaocn ~]#

安装flask

[root@liumiaocn ~]# 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 92kB/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 210kB/s 
Collecting itsdangerous>=0.24 (from flask)
 Downloading https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz (46kB)
  100% |################################| 51kB 469kB/s 
Requirement already satisfied: Werkzeug>=0.14 in /usr/lib64/python2.7/site-packages (from flask) (0.14.1)
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 229kB/s 
Collecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask)
 Downloading https://files.pythonhosted.org/packages/4d/de/32d741db316d8fdb7680822dd37001ef7a448255de9699ab4bfcbdf4172b/MarkupSafe-1.0.tar.gz
Building wheels for collected packages: itsdangerous, MarkupSafe
 Running setup.py bdist_wheel for itsdangerous ... done
 Stored in directory: /root/.cache/pip/wheels/2c/4a/61/5599631c1554768c6290b08c02c72d7317910374ca602ff1e5
 Running setup.py bdist_wheel for MarkupSafe ... done
 Stored in directory: /root/.cache/pip/wheels/33/56/20/ebe49a5c612fffe1c5a632146b16596f9e64676768661e4e46
Successfully built itsdangerous MarkupSafe
Installing collected packages: MarkupSafe, Jinja2, itsdangerous, click, flask
Successfully installed Jinja2-2.10 MarkupSafe-1.0 click-6.7 flask-1.0.2 itsdangerous-0.24
[root@liumiaocn ~]

安装确认

[root@liumiaocn ~]# pip show flask
Name: Flask
Version: 1.0.2
Summary: A simple framework for building complex web applications.
Home-page: https://www.palletsprojects.com/p/flask/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD
Location: /usr/lib64/python2.7/site-packages
Requires: Jinja2, itsdangerous, Werkzeug, click
Required-by: 
[root@liumiaocn ~]#

flask安装之后,也可以用如下方法进行确认

[root@liumiaocn ~]# which flask 
/usr/bin/flask
[root@liumiaocn ~]# flask --version
Flask 1.0.2
Python 2.7.5 (default, Aug 4 2017, 00:39:18) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
[root@liumiaocn ~]#

第一个HelloWorld

代码示例

[root@liumiaocn ~]# cat hello_flask.py 
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
  return "Hello World!"
[root@liumiaocn ~]#

执行&确认

[root@liumiaocn ~]# FLASK_APP=hello_flask.py flask run
 * Serving Flask app "hello_flask.py"
 * Environment: production
  WARNING: Do not use the development server in a production environment.
  Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

通过curl进行结果确认:

[root@liumiaocn ~]# curl http://localhost:5000
Hello World![root@liumiaocn ~]#

代码示例

另外也可以通过使用app.run方法启动服务:

[root@liumiaocn ~]# cat hello_flask_2.py 
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
  return "Hello World!"
if __name__ == "__main__":
  app.run()
[root@liumiaocn ~]#

执行&确认

[root@liumiaocn ~]# python hello_flask_2.py 
 * Serving Flask app "hello_flask_2" (lazy loading)
 * Environment: production
  WARNING: Do not use the development server in a production environment.
  Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

通过curl进行结果确认:

[root@liumiaocn ~]# curl http://localhost:5000
Hello World![root@liumiaocn ~]#

外部可访问的设定方法

可以通过如下方式进行设定可从网络的其他机器对此服务进行访问:

app.run(host='0.0.0.0')

设定端口号

缺省使用5000端口进行监听,如果需要修改,可以使用如下方式:

app.run(port=6000)

设定debug模式

可以使用如下方式打开Debug模式

app.debug = True
app.run()

或者

app.run(debug=True)

小结

对spring boot了解的开发者可能会发现这里基本和spring的requestmapping几乎如出一辙,至少在restapi的实现上有相似之处。设定和实现起来非常地方便,这就是flask用于web开发入门的简单之处。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
python创建列表并给列表赋初始值的方法
Jul 28 Python
Python编程django实现同一个ip十分钟内只能注册一次
Nov 03 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
python样条插值的实现代码
Dec 17 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 Python
python实现网站微信登录的示例代码
Sep 18 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
Nov 08 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
Django 批量插入数据的实现方法
Jan 12 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 Python
PyCharm配置anaconda环境的步骤详解
Jul 31 Python
Python3 Post登录并且保存cookie登录其他页面的方法
Dec 28 #Python
Python3 使用cookiejar管理cookie的方法
Dec 28 #Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 #Python
python获取服务器响应cookie的实例
Dec 28 #Python
基于Python在MacOS上安装robotframework-ride
Dec 28 #Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 #Python
Python编程图形库之Pillow使用方法讲解
Dec 28 #Python
You might like
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
Python中交换两个元素的实现方法
2018/06/29 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
Python3模拟登录操作实例分析
2019/03/12 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
Python实现爬取并分析电商评论
2020/06/19 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
社区消防工作实施方案
2014/03/21 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
文明生主要事迹
2014/05/25 职场文书
夏季药店促销方案
2014/08/22 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
干部考察材料范文
2014/12/24 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android