Flask web開發筆記(一)

2021-08-15 10:59:32 字數 1869 閱讀 4103

1.建立python的虛擬環境

cd  /home/ubuntu    # 定位到需要放置虛擬環境的目錄
virtualenv venv     # venv為虛擬環境目錄名
source venv/bin/activate    # 啟用虛擬環境
當虛擬環境中的工作完成後,如果想回到全域性python 直譯器中,可以在命令列提示符下輸入deactivate。

2.程式初始化

所有flask 程式都必須建立乙個程式例項。web 伺服器閘道器介面(wsgi)把接收自客戶端的所有請求都轉交給這

個物件處理。程式例項是flask 類的物件,經常使用下述**建立:

from flask import flask
flask 類的建構函式只有乙個必須指定的引數,即程式主模組或包的名字。在大多數程式中,python 的 __name__ 變數就是所需的值。

將建構函式的name 引數傳給flask 程式,flask 用這個引數決定程式的根目錄,以便稍後能夠找到相對於程式根目錄的資源檔案位置。

3.路由和檢視函式

defindex

():# 把index() 函式註冊為程式根位址的處理程式

return

''

像index() 這樣的函式稱為檢視函式(view function)。檢視函式返回的響應可以是包含html 的簡單字串,也可以是複雜的表單

檢視函式的作用很明確,即生成請求的響應

4.啟動伺服器

程式例項用run 方法啟動flask 整合的開發web 伺服器:

if __name__ == '__main__':

伺服器啟動後,會進入輪詢,等待並處理請求。輪詢會一直執行,直到程式停止,比如按ctrl-c 鍵。

flask 提供的web 伺服器不適合在生產環境中使用

5.flask上下文全域性變數

變數名上下文

說明程式上下文

當前啟用程式的程式例項

g程式上下文

處理請求時用作臨時儲存的物件。每次請求都會重設這個變數

request

請求上下文

請求物件,封裝了客戶端發出的http 請求中的內容

session

請求上下文

使用者會話,用於儲存請求之間需要「記住」的值的詞典

6.請求鉤子

為了避免在每個檢視函式中都使用重複的**,flask 提供了註冊通用函式的功能,註冊的函式可在請求被分發到檢視函式之前或之後呼叫。例如,在請求開始時,我們可能需要建立資料庫連線或者認證發起請求的使用者。

請求鉤子使用修飾器實現。flask 支援以下4 種鉤子。

• before_first_request:註冊乙個函式,在處理第乙個請求之前執行。

• before_request:註冊乙個函式,在每次請求之前執行。

• after_request:註冊乙個函式,如果沒有未處理的異常丟擲,在每次請求之後執行。

• teardown_request:註冊乙個函式,即使有未處理的異常丟擲,也在每次請求之後執行。

在請求鉤子函式和檢視函式之間共享資料一般使用上下文全域性變數g。例如,before_request 處理程式可以從資料庫中載入已登入使用者,並將其儲存到g.user 中。隨後呼叫檢視函式時,檢視函式再使用g.user 獲取使用者。

7.請求鉤子

《flask web開發》筆記一

寫乙個應用,為了方便維護與提高重用性,需要將程式分為不同模組不同包,flask寫大型也是如此。在我們的專案目錄下,分別放著五種型別的檔案 miguel grinberg這麼設計是非常合理的。congfig.py manager.py 運維層面上的剝離 1.線下配置到線上配置的遷移是必要的,如果讓運維...

《Flask Web開發》讀書筆記 一

2.3 啟動伺服器 2.4 乙個完整的程式 flask有兩個主要依賴 路由 除錯和web伺服器閘道器介面 web server gateway inte ce,wsgi 子系統由werkzeug提供 模版系統由jinja2提供 2.1 初始化 所有flask程式都必須建立乙個程式例項。web伺服器使...

前端開發筆記(一)

1 js判斷字串是否為空 var str if str str 2 判斷checkbox是否被選中 js判斷checkbox是否被選中 var c document.getelementbyid protocl if c.checked jquery判斷checkbox是否被選中 3 js定時器se...