Flask學習之路(一)
前言
本教程來自The Flask Mega-Tutorial的譯本,選用的Makedown編輯器為REMARKABLE,實驗環境為Ubuntu18.04,Python版本為 3.7.1,由於才開始接觸Makedown語法,行文風格參考了此文翻譯,在此向譯者致敬。
安裝Python的過程被略去,若你還沒有安裝Python,此處建議安裝Anaconda。
安裝Flask
Python有公共倉庫來託管第三方的包,我們可以通過<code>pip3</code>安裝,基本格式如下:(注:若ubuntu中同時有Python2.x和3.x,<code>pip</code>預設為Python2安裝,要為Python3安裝需使用<code>pip3</code>)
pip3 install <package-name>
在此涉及到版本問題所引起的故障,可以參考第一行Python程式碼 寫的此篇文章,通過使用虛擬環境可以解決這個問題,我們先建立專案目錄,將此應用命名為microblog:
mkdir microblog cd microblog
在Python3中建立此虛擬環境的命令為:
python3-m venv venv
若提示缺少依賴,在Ubuntu中可以使用此命令安裝依賴sudo apt-get install python3-venv
,命令執行成功的話會在microblog
目錄下生成一個venv
資料夾,首先檢視自己的Python是否包含了virtualenv
,通過使用此命令可以來確認:
virtualenv venv
若提示錯誤則需下載virtualenv,建立完後可以使用以下命令啟用:
source venv/bin/activate
前面出現(venv)
表示虛擬環境啟用,在虛擬環境中安裝Flask
(venv) $ pip3 install flask
測試可以通過匯入模組來進行,開啟直譯器>>> import flask
沒有丟擲異常即為成"
"Hello,World"Flask應用
Flask網站提供了應用例項,讓我們從Hello,World開始這段奇妙之旅,在此先理解一下Python中module
和package
moduel
:一個eg.py即為module,eg為模組名(注:在C中一般稱為lib
,但在Python中,一般稱為moduel
)
package
:一個有層次的檔案目錄,一定含有__init__.py
,定義了由一組moduel
組成的應用環境。
我們建立一個名為app
的package
來存放應用,建立__init__.py
來使資料夾變為package
。
__init__.py
:控制著包的匯入行為,目的是包含不同執行級別的包的可選的初始化程式碼,用以自動載入子模組,具體用法可以參考Python3-cookbook。
在__init__.py
中輸入如下程式碼:
from flask import Flask app = Flask(__name) from app import routes
此處app = Flask(__name)
中建立了Flask的例項,引數name
,告訴了falsk了Application的名字,官方文件中有:If you are using a single module,__name__
is always the correct value. If you however are using a package, it’s usually recommended to hardcode the name of your package there.
在Flask中,應用程式路由的處理邏輯被編寫為Python函式,稱為檢視函式。 檢視函式被對映到一個或多個路由URL,以便Flask知道當客戶端請求給定的URL時執行什麼邏輯。在app/routes.py 中 實現了檢視函式
from app import app @app.route('/') @app.route('/index') def index(): return "Hello, World!"
在Python中@符號稱為裝飾器的語法糖,關於裝飾器更詳細的瞭解可以參考流暢的Python
,@app.route
裝飾器將路徑/
和/index
關聯到index
函式,這樣在訪問這兩個URL時將呼叫此函式並將返回值作為響應傳遞給瀏覽器。
要完成應用程式還需要在microblog
目錄下建立一個名為microblog.py
的指令碼,通過此來匯入應用例項:
from app import app
此處第一個app
為包名(包含檔案的init
.py資料夾),第二個是包中匯入app
物件,在設定完FLASK_APP
環境變數就可以執行第一個程式了,命令如下:
export FLASK_APP=microblog.py
用此種方法在每次執行之前都得設定環境變數,通過設定可以只會在執行flask命令時自動註冊生效的環境變數首先安裝python-dotenv
pip3 install python-dotenv
安裝後在microblog
目錄下新建一個.flaskenv
的檔案,內容是:
FLASK_APP=microblog.py
在虛擬環境中,通過執行flask run
就成功運行了構築的第一個Web應用了。通過輸出可以看到伺服器執行在127.0.0.1上,使用127.0.0.1:5000
就可以看到構築的Hello,World頁面了。