from flask import flask
當從此檔案進入時__name__為__main__。flask用這個引數確定程式的根目錄,以便查詢資源檔案的位置。
defindex
():return
''
return
'' % name
if __name__=='__main__':
上下文在乙個執行緒中全域性可訪問的特定變數,flask保證不同執行緒之間互不干擾。作用區域執行緒(對應處理接收的請求)。目的從客戶端接收請求時,總需要訪問一些通用的物件(如,請求物件)。如果作為引數進行傳輸,勢必增大檢視函式工作。避免把檢視函式弄複雜,夫拉斯凱使用上下文臨時把某些物件變為全域性可訪問的物件。
from flask import request
defindex
(): user_agent = request.headers.get('user-agent')
return
'your browser is % s
' % user_agent
上下文分為:程式上下文和請求上下文。
變數名上下文
說明程式上下文
當前啟用程式的程式例項
g程式上下文
處理請求時用作臨時儲存的物件。每次請求都會重設這個變數
request
請求上下文
請求物件,封裝了客戶端發出的 http 請求中的內容
session
請求上下文
使用者會話,用於儲存請求之間需要「記住」的值的詞典
flask 在分發請求之前啟用(或推送)程式和請求上下文,請求處理完成後再將其刪除。如果使用這些變數時我們沒有啟用程式上下文或請求上下文,就會導致錯誤。
程式收到客戶端發來的請求時,flask通過url對映(url和檢視之間的對應關係)找到處理該請求的檢視函式。
$ python#檢視url對映
python 2.7
.6 (default, jun 22
2015, 17:58:13)
[gcc 4.8
.2] on linux2
or"license"
for more information.
map(['/' (head, options, get) -> index>,
'/static/' (head, options, get) -> static>,
'/user/' (head, options, get) -> user>])
用途:處理請求之前或之後的人物。如:在請求開始時,我們可能需要建立資料庫連線或者認證發起請求的使用者。為了避免在每個檢視函式中都使用重複的**,flask 提供了註冊通用函式的功能,註冊的函式可在請求被分發到檢視函式之前或之後呼叫。
方法:同樣鉤子也是使用修飾器來實現的。flask支援4中鉤子
• before_first_request :註冊乙個函式,在處理第乙個請求之前執行。
• before_request :註冊乙個函式,在每次請求之前執行。
• after_request :註冊乙個函式,如果沒有未處理的異常丟擲,在每次請求之後執行。
• teardown_request :註冊乙個函式,即使有未處理的異常丟擲,也在每次請求之後執行。
在請求鉤子函式和檢視函式之間共享資料一般使用上下文全域性變數g。例如, before_request處理程式可以從資料庫中載入已登入使用者,並將其儲存到g.user中。隨後呼叫檢視函式時,檢視函式再使用g.user獲取使用者。
說的是檢視函式返回的內容。
1、檢視函式返回的內容包括:相應字串和狀態碼。
defindex
():return
'', 400
#200成功處理,400請求無效,
2、返回response物件。使用make_response()
,返回response物件。
from flask import make_response
defindex
(): response = make_response('')
response.set_cookie('answer', '42')
return response
3、重定向。這種響應沒有頁面文件,只告訴瀏覽器乙個新位址用以載入新頁面。
return redirect('')
4、特殊相應。abort 函式生成,用於處理錯誤。
from flask import abort
defget_user
(id):
user = load_user(id)
ifnot user:
abort(404)
return
'' % user.name
abort 不會把控制權交還給呼叫它的函式,而是丟擲異常把控制權交給 web 伺服器。返回的狀態碼是404. FLask學習筆記 Flask概念(一)
1.程式例項 flask類的物件,只有乙個強制指定的引數 程式主模組或包的名字。通常用如下 建立 from flask import flask2.路由和檢視函式 處理url和函式之間關係的程式稱為路由。def index return hello world 上圖中index 即為檢視函式 動態路...
flask學習筆記(一) Hello Flask!
flask是乙個用python編寫的微web框架。它被歸類為微框架,因為它不需要特定的工具或庫。它沒有資料庫抽象層,表單驗證或任何其他預先存在的第三方庫提供常用功能的元件。但是,flask支援可以新增應用程式功能的擴充套件,就像它們在flask本身中實現一樣。存在物件關係對映器,表單驗證,上載處理,...
Flask學習筆記
web 發展至今,特別是伺服器端,涉及到的知識 內容,非常廣泛。這對程式設計師的要求會越來越高。如果採用成熟,穩健的框架,那麼一些基礎的工作,比如,網路操作 資料庫訪問 會話管理等都可以讓框架來處理,那麼程式開發人員可以把精力放在具體的業務邏輯上面。使用web框架開發web應用程式可以降低開發難度,...