書籍:《Flask Web開發:基於Python的Web應用開發實戰》
作者代碼地址:miguelgrinberg/flasky
程序和請求上下文:
請求對象:負責封裝客戶端發送的HTTP請求。
上下文(context):Flask使用上下文臨時把某些對象變爲全局可訪問。例如:
from flask import request
@app.route('/')
def index():
user_agent = request.headers.get('User-Agent')
return '<p>Your browser is %s</p>' % user_agent
程序上下文:current_app, g;請求上下文:request, session。
請求調度:
URL映射:URL和視圖函數的對應關係。app.route()修飾器或非修飾器形式的app.add_url_rule()會生成映射。調用app.url_map可以查看映射關係。
>>> app.url_map
Map([<Rule '/' (HEAD, OPTIONS, GET) -> index>,
<Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>,
<Rule '/user/<name>' (HEAD, OPTIONS, GET) -> user>])
HEAD、 Options、 GET 是請求方法,由路由進行處理。每個路由都會指定請求方法,不同的請求方法發送到相同URL上時會使用不同視圖函數進行處理。
請求鉤子:
四種鉤子:before_first_request, before_request, after_request, teardown_request。鉤子函數與視圖函數之間共享數據一般使用上下文全局變量g。
響應:
響應的內容即是視圖函數返回的值。有幾種:簡單的字符串——作爲HTML頁面送回客戶端,HTTP響應中的狀態碼,一個字典,一種名爲重定向的特殊響應類型。由abort函數生成的錯誤處理響應。
Flask擴展:
Flask-Script, 爲Flask程序添加了一個命令解析器。
更多文章與筆記請關注:微信公衆號:二進制樹