Flask是一個用python編寫的WSGI應用框架,我們使用他的時候,只需要專注于從網(wǎng)絡(luò)請求到網(wǎng)絡(luò)響應的過程中的邏輯處理,而無需關(guān)注網(wǎng)絡(luò)層面的操作。
他可以很簡單地使用pip來安裝:
pip install flask
Hello Flask
編寫一個Flask的Hello world相當容易
1 導入Flask
from flask import Flask
2 實例化Flask
app = Flask(__name__)
Flask類的構(gòu)造參數(shù)是引入名,F(xiàn)lask使用這個名字進行靜態(tài)資源、模板信息和錯誤的定位,一般情況下,我們總是使用__name__。
3 注冊路由
@app.route('/')
def index:
return 'Hello Flask'
注冊路由就是建立URL和處理關(guān)系之間的聯(lián)系,HTTP請求在Flask中依賴于注冊的路由進行轉(zhuǎn)發(fā)。
路由的注冊使用的是python的特殊語法,修飾器,他將會把對應的URL規(guī)則綁定到對應的函數(shù)上,這個函數(shù)被稱為視圖函數(shù),當來自對應URL的HTTP請求被WSGI服務(wù)器接收后,將會執(zhí)行對應的視圖函數(shù)。
4 啟動WSGI服務(wù)器
app.run(host='0.0.0.0', port=80,debug=True)
路由規(guī)則
1 HTTP方法
在Flask中可以通過methods參數(shù)來指定使用的方法,如果不聲明,則默認支持GET與POST方法
@app.route('/test', methods=['POST', 'GET'])
def test():
if request.method == 'GET':
return 'get method response'
if request.method == 'POST':
return 'post mehod response'
2 匹配動態(tài)URL
在路由器修飾器中,可以在URL規(guī)則中使用尖括號來聲明變量,同時為視圖函數(shù)聲明對應的參數(shù)。
@app.route('/hello/<username>')
def say_hello():
return 'hello %s' % username
其中,這個參數(shù)還可以使用變量類型過濾。
@app.route('/hello/<int:count>')
Flask將會對對應的參數(shù)進行預處理:
- string - 匹配不包含/的字符串,這是默認的轉(zhuǎn)換器。
- path - 匹配包含/的字符串。
- int - 只有當URL中的變量是整型值時才匹配,并將變量轉(zhuǎn)換為整型。
- float - 只有當URL中的變量是浮點值時才匹配,并將變量轉(zhuǎn)換為浮點型。
3 靜態(tài)文件目錄
在Flask中,static文件夾將會成為默認的靜態(tài)文件目錄,如果你想要指定特殊的靜態(tài)文件目錄,可以在Flask的實例化過程中使用
app = Flask(__name__, static_folder='/var/www/static')