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 str与repr的区别
Mar 23 Python
按日期打印Python的Tornado框架中的日志的方法
May 02 Python
Python 爬虫爬取指定博客的所有文章
Feb 17 Python
Python 装饰器使用详解
Jul 29 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
Python continue继续循环用法总结
Jun 10 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
python自动生成model文件过程详解
Nov 02 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
python适合做数据挖掘吗
Jun 16 Python
Python的collections模块真的很好用
Mar 01 Python
python 实现德洛内三角剖分的操作
Apr 22 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读注册表
2006/10/09 PHP
十天学会php(1)
2006/10/09 PHP
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
JavaScript Prototype对象
2009/01/07 Javascript
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
运算符&&的三个不同层次
2013/04/07 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
总经理助理的八要求
2013/11/12 职场文书
服装创业计划书范文
2014/02/05 职场文书
村党建工作汇报材料
2014/11/02 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书