FLask學習筆記 Flask概念(一)

2021-08-21 17:30:40 字數 1972 閱讀 9913

1.程式例項:

flask類的物件,只有乙個強制指定的引數——程式主模組或包的名字。通常用如下**建立:

from flask import flask
2.路由和檢視函式:

處理url和函式之間關係的程式稱為路由。

def index():

return 'hello world'

上圖中index()即為檢視函式

動態路由:

def users(name):

return 'hello %s'%name

3.啟動伺服器:

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

if __name__=='__main__':
__name__=='__main__'  確保直接執行該指令碼才啟動開發web伺服器

debug=true 啟動除錯模式

4.程式和請求上下文:

flask使用上下文臨時把某些物件變為全域性訪問,減少了大量可有可無的引數把檢視函式弄的一團糟。

但是這裡的全域性訪問,並不是真的全域性訪問,只是在乙個執行緒中的全域性訪問。

使用請求上下文request的示例**:

from flask import request

def index():

user_agent = request.header.get('user-agent')

return 'your browser is %s' % user_agent

程式上下文:

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

請求上下文:

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

session:使用者會話,用於儲存請求之間需要『記住』的值的詞典

flask在分發請求之前啟用(推送)上下文,並在請求處理完成後刪除。上下文在推送之後才可以使用

5.請求鉤子:

在請求之前或之後執行**。

四種鉤子:

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

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

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

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

在請求鉤子函式和檢視函式之間共享資料一般使用上下文全域性變數g

6.響應:

flask呼叫檢視函式之後,會將其返回值作為響應的內容。http講響應的內容作為html頁面回送客戶端。

http響應中很重要的部分是狀態碼:200——請求已經被成功處理  400——請求無效 

def index():

return '請求失敗',400

可以返回response物件

from flask import make_response

def index():

response = make_response('hello world')

response.set_cookie('no.','1')

return response

重定向:狀態碼——302

from flask import redirect

def index():

return redirect('')

用於處理錯誤的特殊響應:使用abort函式生成,直接丟擲異常交給web伺服器

from falsk import abort

def get_user(id):

user = load_user(id)

if not user:

abort(404)

return 'hello %s'%user.name

Flask學習筆記

web 發展至今,特別是伺服器端,涉及到的知識 內容,非常廣泛。這對程式設計師的要求會越來越高。如果採用成熟,穩健的框架,那麼一些基礎的工作,比如,網路操作 資料庫訪問 會話管理等都可以讓框架來處理,那麼程式開發人員可以把精力放在具體的業務邏輯上面。使用web框架開發web應用程式可以降低開發難度,...

Flask 學習筆記

因為mac自帶了python2.7,所以這個文章是基於2.7版本的 依賴於兩個外部庫 werkzeug和jinjia2.werkzeug是乙個wsgi工具集,jinjia2負責渲染模版 2.安裝 1 mac osx或linux sudo pip install virtualenv mkdir my...

flask學習筆記

flask涉及到兩個重要的類 flask和blueprint 藍本 類。flask的應用程式需要flask類例項化才能執行,的基本配置資訊也包含在此類中。例項化如下 from flask import flask配置如下 blueprint類與flask類似,它能夠更好的組織web應用程式,並能延遲...