Flask01 第一個flask專案

文強同學發表於2022-05-10

參考地址:https://github.com/miguelgrinberg/microblog/tree/v0.1

flask環境【蘋果M1】

新增虛擬環境

python3 -m venv venv

使用這個命令來讓Python執行 venv 包,它會建立一個名為 venv 的虛擬環境,虛擬環境名稱為venv,我習慣在專案目錄中建立了名為 venv 的虛擬環境,所以無論何時 cd 到一個專案中,都會找到相應的虛擬環境。

不管你用什麼方法建立虛擬環境,建立完畢之後還需要啟用才能夠進入這個虛擬環境。 要啟用你的全新虛擬環境,需使用以下命令:

source venv/bin/activate

啟用一個虛擬環境,終端會話的環境配置就會被修改(前面會有小括號,虛擬環境名稱),之後你鍵入 python 的時候,實際上是呼叫的虛擬環境中的Python直譯器。

此外,終端提示符也被修改成包含被啟用的虛擬環境的名稱的格式。
這種啟用是臨時的和私有的,因此在關閉終端視窗時它們將不會保留,也不會影響其他的會話。
那麼,當你需要同時開啟多個終端視窗來除錯不同的應用時,每個終端視窗都可以啟用不同的虛擬環境而不會相互影響。
成功建立和啟用了虛擬環境之後,你可以安裝Flask了,命令如下:

pip3 install flask

之前已經下載過flask了,提示Requirement already satisfied。正常情況下是successfull.

flask應用

專案結構如圖

python資料夾下有__init__.py,就是一個python包,可以被import導包。 app 包由app目錄和 init.py 指令碼來定義構成,並在 from app import routes 語句中被引用。

在Flask中,應用程式路由的處理邏輯被編寫為Python函式,稱為檢視函式。 檢視函式被對映到一個或多個路由URL,以便Flask知道當客戶端請求給定的URL時執行什麼邏輯。
app/routes.py中的第一個檢視函式的程式碼:

from app import app


@app.route('/')
@app.route('/index')
def index():
    return 'Hello Worold! index ...lalala'

兩個裝飾器,它們將URL / 和 /index 索引關聯到這個函式。 這意味著,當Web瀏覽器請求這兩個URL中的任何一個時,Flask將呼叫該函式並將其返回值作為響應傳遞迴瀏覽器。

Flask應用程式例項被稱為 app ,是 app 包的成員。 from app import app 語句從 app 包匯入其成員 app 變數。

啟動檔案flaskProject.py只有一行程式碼,檔名也有叫app.py 的也有叫manager.py的

from app import app

在執行之前,需要通過設定FLASK_APP 環境變數告訴Flask如何匯入它:

export FLASK_APP=flaskProject.py

提醒一下你,在終端會話中直接設定的環境變數不會永久生效,因此你不得不在每次新開終端時設定 FLASK_APP 環境變數,從 1.0 版本開始,Flask 允許你設定只會在執行 flask 命令時自動註冊生效的環境變數,要實現這點,你需要安裝
python-dotenv :

pip3 install python-dotenv

此時,在專案的根目錄下新建一個名為 .flaskenv 的檔案,其內容是:

FLASK_APP=microblog.py

通過此項設定, FLASK_APP 就可以自動載入了。

如果你鍾愛手動設定環境變數,那也不錯,只是記得每次啟動終端後要設定它。命令為:
export FLASK_APP=flaskProject.py

配置了.flaskenv環境的執行效果如下:

相關文章