当前位置:脚本大全 > > 正文

pythonflask系列教程(Python安装Flask环境及简单应用示例)

时间:2021-10-08 00:05:08类别:脚本大全

pythonflask系列教程

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

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

安装环境

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

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

  • ?
  • 1
  • $ virtualenv --version
  • 安装虚拟环境(须在联网状态下)

  • ?
  • 1
  • 2
  • $ sudo pip install virtualenv
  • $ sudo pip install virtualenvwrapper
  • 创建虚拟环境(ubuntu里须在联网状态下)

  • ?
  • 1
  • $ mkvirtualenv flask_py
  • 进入虚拟环境

  • ?
  • 1
  • $ workon flask_py
  • 退出虚拟环境

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

  • ?
  • 1
  • $ deactivate flask_py
  • 安装flask

    指定flask版本安装

  • ?
  • 1
  • $ pip install flask==0.10.1
  • mac系统:

  • ?
  • 1
  • $ easy_install flask==0.10.1
  • 在ipython中测试安装是否成功

  • ?
  • 1
  • $ from flask import flask
  • flask程序运行过程:

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

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

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

    示例:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • # 导入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映射到同一个视图函数处理,比如:使用同一个视图函数 来显示不同用户的个人信息。

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

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

  • ?
  • 1
  • 2
  • 3
  • @app.route('/')
  • def hello_itcast():
  •   return 'hello itcast',999
  • abort函数:

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

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • from flask import flask,abort
  • @app.route('/')
  • def hello_itcast():
  •   abort(404)
  •   return 'hello itcast',999
  • 重定向redirect示例

  • ?
  • 1
  • 2
  • 3
  • 4
  • from flask import redirect
  • @app.route('/')
  • def hello_itcast():
  •   return redirect('http://www.baidu.com')
  • 正则url示例:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 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
  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • from flask import flask,request
  • #获取cookie
  • @app.route('/request')
  • def resp_cookie():
  •   resp = request.cookies.get('username')
  •   return resp
  • 希望本文所述对大家基于flask框架的python程序设计有所帮助。

    原文链接:https://blog.csdn.net/xuezhangjun0121/article/details/77824466

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐