Flask框架基礎功能
阿新 • • 發佈:2018-05-13
Go 關系 code any 開發 django pat bug urn
引言
本文簡單匯總Flask框架幾大基礎功能,包括:
- 路由系統
- 模板
- 數據庫
- 幾種常用Flask庫
一個簡單的Flask事例
Flask是一個基於Python,依賴Jinja2模板和WSGI服務的框架。當我們訪問一個URL時,瀏覽器發出HTTP請求,WSGI接收到我們的請求,交給Flask框架提供的一系列功能來處理請求,並返回HTTP響應給瀏覽器(客戶端)。
與Django相比,Flask作為一個微框架,不會面面俱到,但可以通過安裝擴展來增加提供的服務,可定制性很強。
下面是一個簡單的Flask事例,當我們訪問http://127.0.0.1:5000時,瀏覽器會顯示hello flask
from flask import Flask app = Flask(__name__) @app.route(‘/‘) def index(): return ‘<h1>hello, flask</h1>‘ if __name__ == ‘__main__‘: app.run(host=‘127.0.0.1‘, port=5000)
上述程序我們創建了一個app的Flask實例,將根目錄與index路由函數函數綁定,並運行在localhost:5000上。
運行上述程序,我們可以直接python 程序名運行。如果用於開發環境,還有其他方法來運行,Flask源碼裏面的註釋寫是很清楚,需要設置FLASK_DEBUG環境變量為程序名,然後就可以通過flask run
來運行該服務器。
路由系統
上面的程序中,@app.route(‘/‘)
是一個裝飾器。python裏面裝飾器常常用來將被裝飾的函數註冊為某事件的回調函數。具體來說,當Web瀏覽器請求/時,會觸發index這個函數,並將index函數的返回值作為響應返回給瀏覽器。不同的URL可以有相同的視圖處理函數,換句話說,一個函數可以對應多個URL。這在Django的MTV模式中,對應其中的views。
常用的路由系統有以下五種:
- @app.route(‘/usr/
- @app.route(‘/usr/
- @app.route(‘/usr/
- @app.route(‘/usr/
- @app.route(‘/usr‘, methods=[‘GET‘, ‘POST‘])
以下是對應關系:
DEFAULT_CONVERTERS = { ‘default‘: UnicodeConverter, ‘string‘: UnicodeConverter, ‘any‘: AnyConverter, ‘path‘: PathConverter, ‘int‘: IntegerConverter, ‘float‘: FloatConverter, ‘uuid‘: UUIDConverter, }
可以看到不支持正則表達式。關於這點,可以參考Segment Fault的回答。
To Be continue
Flask框架基礎功能