flask涉及到兩個重要的類——flask和blueprint[藍本] 類。
flask的應用程式需要flask類例項化才能執行,**的基本配置資訊也包含在此類中。
例項化如下:
from flask import flask
配置如下:
blueprint類與flask類似,它能夠更好的組織web應用程式,並能延遲flask類例項的建立。
1. 路由和請求處理
路由的存在是為了將web服務的請求轉交給flask程式例項的函式處理,簡單的說處理url和函式之間的關係稱為路由。函式稱為檢視函式。
flask類包含了route裝飾器,通過初始化flask類註冊檢視函式。
無引數
def index():
return ""
當訪問**根網域名稱時,會執行index函式,返回值的結果會在網頁中顯示。
帶引數
在很多時候使用者不同,使用的url不同,帶引數的路由能夠很好的處理url中變化的部分。如在網頁中顯示個人名字
def user(name):
return ''.format(name)
處理get, post請求
def index():
pass
當網頁需要處理表單等請求時,需要新增methods,使得檢視函式能夠處理http請求。methods中的引數包括了http協議中定義的5種動作。
響應處理
from flask import make_request
response = make_request("")
response.set_cookie('answer','42')
return response
響應處理中很重要的一部分是處理http協議的狀態碼。flask預設狀態碼是200。而返回特殊狀態碼可在返回值中新增,**如下:
def index():
return "", 400 #返回特殊狀態碼```
「』?』 + 鍵值對「 形式
? 後的鍵值對由flask提供request物件處理。假設url為127.0.0.1:5000?page=1
from flask import request
def index():
page = request.args.get('page', type=int)
2. 異常處理
在瀏覽網頁時,可能會遇到一些錯誤,flask提供abort函式丟擲錯誤,而丟擲的異常會直接返回給web伺服器。我們也可以自定義處理這些異常。**如下:
from flask import abort
def index():
abort(404) #丟擲404異常
def page_not_found(error): # 自定義處理異常
return 'this page does not exist', 404
3. 請求鉤子
請求鉤子是指在請求之前或之後所做的處理函式
函式名功能
before_first_request
在處理第乙個請求之前執行
before_request
每次請求之前執行
after_request
無異常,每次請求之後執行
teardown_request
即使異常,也在請求之後執行
請求鉤子函式與檢視函式之間通過g變數共享資料。
學習資料:
python 中文學習大本營 :python中文學習大本營
《flask web 開發》segmentfault系列文章 - 作者只錄入了前七章內容,未涉及例項開發部分
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概念(一)
1.程式例項 flask類的物件,只有乙個強制指定的引數 程式主模組或包的名字。通常用如下 建立 from flask import flask2.路由和檢視函式 處理url和函式之間關係的程式稱為路由。def index return hello world 上圖中index 即為檢視函式 動態路...