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 urlopen 使用小示例
Sep 06 Python
python迭代器的使用方法实例
Nov 21 Python
pycharm 使用心得(五)断点调试
Jun 06 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
opencv python 傅里叶变换的使用
Jul 21 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
Python : turtle色彩控制实例详解
Jan 19 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python中 Flask Web 表单的使用方法
May 20 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基础知识:类与对象(1)
2006/12/13 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
python生成并处理uuid的实现方式
2020/03/03 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
师范毕业生求职自荐信
2013/09/25 职场文书
农民工创业典型事迹
2014/01/25 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
毕业生写求职信的要点
2014/03/04 职场文书
5s推行计划书
2014/05/06 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python