Python安装Flask环境及简单应用示例


Posted in Python onMay 03, 2019

本文实例讲述了Python安装Flask环境及简单应用。分享给大家供大家参考,具体如下:

安装环境

使用虚拟环境安装Flask,可以避免包的混乱和版本的冲突,虚拟环境是Python解释器的副本,在虚拟环境中你可以安装扩展包,为每个程序单独创建的虚拟环境,可以保证程序只能访问虚拟环境中的包。而不会影响系统中安装的全局Python解释器,从而保证全局解释器的整洁。

虚拟环境使用virtualenv创建,可以查看系统是否安装了virtualenv:

$ virtualenv --version

安装虚拟环境(须在联网状态下)

$ sudo pip install virtualenv
$ sudo pip install virtualenvwrapper

创建虚拟环境(ubuntu里须在联网状态下)

$ mkvirtualenv Flask_py

进入虚拟环境

$ workon Flask_py

退出虚拟环境

如果所在环境为真实环境,会提示deactivate:未找到命令

$ deactivate Flask_py

安装Flask

指定Flask版本安装

$ pip install flask==0.10.1

Mac系统:

$ easy_install flask==0.10.1

在ipython中测试安装是否成功

$ from flask import Flask

Flask程序运行过程:

所有Flask程序必须有一个程序实例。

Flask调用视图函数后,会将视图函数的返回值作为响应的内容,返回给客户端。一般情况下,响应内容主要是字符串和状态码。

当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。此时,Web服务器使用WSGI(Web Server Gateway Interface)协议,把来自客户端的所有请求都交给Flask程序实例,程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。根据每个URL请求,找到具体的视图函数。 在Flask程序中,路由的实现一般是通过程序实例的装饰器实现。通过调用视图函数,获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后由Flask返回响应数据给浏览器,最后浏览器处理返回的结果显示给客户端。

示例:

# 导入Flask类
from flask import Flask
#Flask函数接收一个参数__name__,它会指向程序所在的模块
app = Flask(__name__)
# 装饰器的作用是将路由映射到视图函数index
@app.route('/')
def index():
  return 'Hello World'
# Flask应用程序实例的run方法启动WEB服务器
if __name__ == '__main__':
  app.run()

给路由传参示例:

有时我们需要将同一类URL映射到同一个视图函数处理,比如:使用同一个视图函数 来显示不同用户的个人信息。

# 路由传递的参数默认当做string处理,这里指定int,尖括号中的内容是动态的
@app.route('/user/<int:id>')
def hello_itcast(id):
  return 'hello itcast %d' %id

返回状态码示例:

return后面可以自主定义状态码(即使这个状态码不存在)。当客户端的请求已经处理完成,由视图函数决定返回给客户端一个状态码,告知客户端这次请求的处理结果。

@app.route('/')
def hello_itcast():
  return 'hello itcast',999

abort函数:

如果在视图函数执行过程中,出现了异常错误,我们可以使用abort函数立即终止视图函数的执行。通过abort函数,可以向前端返回一个http标准中存在的错误状态码,表示出现的错误信息。

使用abort抛出一个http标准中不存在的自定义的状态码,没有实际意义。如果abort函数被触发,其后面的语句将不会执行。其类似于python中raise。

from flask import Flask,abort
@app.route('/')
def hello_itcast():
  abort(404)
  return 'hello itcast',999

重定向redirect示例

from flask import redirect
@app.route('/')
def hello_itcast():
  return redirect('http://www.baidu.com')

正则URL示例:

from flask import Flask
from werkzeug.routing import BaseConverter
class Regex_url(BaseConverter):
  def __init__(self,url_map,*args):
    super(Regex_url,self).__init__(url_map)
    self.regex = args[0]
app = Flask(__name__)
app.url_map.converters['re'] = Regex_url
@app.route('/user/<re("[a-z]{3}"):id>')
def hello_itcast(id):
  return 'hello %s' %id

设置cookie和获取cookie

from flask import Flask,make_response
@app.route('/cookie')
def set_cookie():
  resp = make_response('this is to set cookie')
  resp.set_cookie('username', 'itcast')
  return resp
from flask import Flask,request
#获取cookie
@app.route('/request')
def resp_cookie():
  resp = request.cookies.get('username')
  return resp

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
收藏整理的一些Python常用方法和技巧
May 18 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
Mar 13 Python
python正则表达式的使用
Jun 12 Python
python实现简单遗传算法
Mar 19 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
python 字典套字典或列表的示例
Dec 16 Python
基于Tensorflow:CPU性能分析
Feb 10 Python
Python中os模块功能与用法详解
Feb 26 Python
python利用opencv保存、播放视频
Nov 02 Python
python opencv实现图像配准与比较
Feb 09 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 #Python
Python3模拟curl发送post请求操作示例
May 03 #Python
零基础使用Python读写处理Excel表格的方法
May 02 #Python
Python TestCase中的断言方法介绍
May 02 #Python
Python3中的bytes和str类型详解
May 02 #Python
利用pyinstaller打包exe文件的基本教程
May 02 #Python
Python中psutil的介绍与用法
May 02 #Python
You might like
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
python单链表实现代码实例
2013/11/21 Python
go和python调用其它程序并得到程序输出
2014/02/10 Python
Python实现的彩票机选器实例
2015/06/17 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
Python WSGI的深入理解
2018/08/01 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
小区停车场管理制度
2014/01/27 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
推荐信怎么写
2014/05/09 职场文书
出纳工作检讨书
2014/10/18 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
考察邀请函范文
2015/01/31 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python