安裝虛擬環境: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
)