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修改Excel数据的实例代码
Nov 01 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
python3 模拟登录v2ex实例讲解
Jul 13 Python
python 批量修改/替换数据的实例
Jul 25 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
Python数据类型之String字符串实例详解
May 08 Python
将Python文件打包成.EXE可执行文件的方法
Aug 11 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
如何理解python中数字列表
May 29 Python
python如何求圆的面积
Jul 01 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 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
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
php以post形式发送xml的方法
2014/11/04 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
Vue配置marked链接添加target="_blank"的方法
2019/07/19 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
Python操作Excel之xlsx文件
2017/03/24 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Python如何对齐字符串
2020/07/30 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
入党申请人的自我鉴定
2013/12/01 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
十佳家长事迹材料
2014/08/26 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏