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中表达式x += y和x = x+y 的区别详解
Jun 20 Python
Python import与from import使用及区别介绍
Sep 06 Python
Python tkinter label 更新方法
Oct 11 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
python3.4爬虫demo
Jan 22 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
python实现键盘输入的实操方法
Jul 16 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
python 获取字典键值对的实现
Nov 12 Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 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
深入了解php4(1)--回到未来
2006/10/09 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
js选项卡的实现方法
2015/02/09 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
python ddt实现数据驱动
2018/03/14 Python
python实现树形打印目录结构
2018/03/29 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
优秀学生干部个人的自我评价
2013/10/04 职场文书
会计助理岗位职责
2014/02/17 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
秋天的图画教学反思
2014/05/01 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
商业用房租赁协议书
2014/10/13 职场文书
优秀教师事迹材料
2014/12/15 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
家庭贫困证明
2015/06/16 职场文书
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS