【Python Flask】 Web開發學習筆記——請求-響應循環簡單瞭解

書籍:《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程序添加了一個命令解析器。

更多文章與筆記請關注:微信公衆號:二進制樹

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章