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数据结构之顺序表的实现代码示例
Nov 15 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
彻底搞懂Python字符编码
Jan 23 Python
3个用于数据科学的顶级Python库
Sep 29 Python
Django框架用户注销功能实现方法分析
May 28 Python
人工神经网络算法知识点总结
Jun 11 Python
python实现BP神经网络回归预测模型
Aug 09 Python
Python pygame绘制文字制作滚动文字过程解析
Dec 12 Python
在keras下实现多个模型的融合方式
May 23 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
如何在scrapy中集成selenium爬取网页的方法
Nov 18 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框架的性能
2008/01/10 PHP
php miniBB中文乱码问题解决方法
2008/11/25 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
php生成静态页面的简单示例
2014/04/17 PHP
php检查页面是否被百度收录
2015/10/28 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
Python基于贪心算法解决背包问题示例
2017/11/27 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
python初步实现word2vec操作
2020/06/09 Python
python爬取抖音视频的实例分析
2021/01/19 Python
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
导游实习生自荐书
2014/01/28 职场文书
一岗双责责任书
2014/04/15 职场文书
美术课外活动总结
2014/07/08 职场文书
法院授权委托书范文
2014/08/02 职场文书
小学毕业感言200字
2015/07/30 职场文书
小区物业管理2015年度工作总结
2015/10/22 职场文书
导游词之西安骊山
2019/12/20 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
用JS写一个发布订阅模式
2021/11/07 Javascript