安装虚拟环境:python
$ sudo pip install virtualenv $ sudo pip install virtualenvwrapper virtualenv --version # 检查版本
安装完虚拟环境后,若是提示找不到mkvirtualenv命令,须配置环境变量:web
# 一、建立目录用来存放虚拟环境 mkdir $HOME/.virtualenvs # 二、打开~/.bashrc文件,并添加以下: export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh # 三、运行 source ~/.bashrc
建立虚拟环境(ubuntu里须在联网状态下)数据库
$ mkvirtualenv Flask_py
进入虚拟环境flask
$ workon Flask_py
退出虚拟环境ubuntu
若是所在环境为真实环境,会提示deactivate:未找到命令浏览器
$ deactivate Flask_py
安装依赖包(须在虚拟环境中): 依赖就是开发以及程序运行须要使用的环境的集合。包括软件、插件等。咱们通常会把须要使用的依赖给保存在一个文件中,命名为requirements的txt文件。若是在其它环境中要运行咱们的项目,直接经过指令能够一次性安装全部依赖。bash
安装依赖包(须在虚拟环境中):服务器
$ pip install -r requirements.txt
生成依赖包(须在虚拟环境中):session
$ pip freeze > requirements.txt
在ipython中测试安装是否成功app
$ from flask import Flask
客户端发起 HTTP 请求,web 服务器使用 WSGI 协议未来自客户端的请求交给 flask 实例。
WSGI 是 Python 语言定义的 web 服务器 和 web 应用程序之间的一种简单而通用的接口,它封装了 http 请求,解析 http 请求、发送 http 响应等这些底层代码。
程序实例使用 Werkzeug 作路由分发,根据每一个 URL 请求,找到具体视图函数。router 内部会调用 add_url_route()
方法来实现路由注册。
调用视图函数,获取响应数据后,将数据传入 HTML 模板文件中,模板引擎负责渲染响应数据,而后由 flask 返回响应数据给浏览器,最后浏览器将数据显示给客户端。
上下文就像一个容器,保存 Flask 程序运行时的一些信息。Flask 中有两种上下文:请求上下文、应用上下文。
请求上下文(request context)
request
和 session
都属于请求上下文对象
request
:封装 HTTP 请求内容session
:记录请求会话信息,如:保存用户信息 session['username']= user.id
应用上下文(application context)
current_app
和 g
都属于应用上下文对象
current_app
:当前运行程序文件的程序实例 current_app.name
打印当前应用程序实例名字>>> from s3 import app >>> from flask import Flask >>> context = app.app_context() >>> context.push() >>> current_app.name 's3'
请求上下文和应用上下文区别
除了可使用 app.run()
传递参数外(能够传递 host/ip等),还能够经过 Flask-Script
拓展程序拓展命令行,从命令行传递这些参数:
app.py
from flask import Flask from flask_script import Manager app = Flask(__name__) manager = Manager(app) @app.route('/') def index(): return 'OK' if __name__ == "__main__": manager.run()
经过 python app.py runserver --help
来查看能够传递的参数。(前提是你要安装好 Flask-Script
)