在閱讀《Flask Web開發(fā)》的過程中,出現(xiàn)了類似程序上下文與請求上下文的字眼箫措。“上下文”這個字眼一般都是出現(xiàn)在閱讀中的衬潦。在這里的突然出現(xiàn)斤蔓,著實讓我一頭霧水。在我看來镀岛,作者將"Context"翻譯成“上下文”弦牡,亦可以翻譯為“背景”,有助于理解漂羊。
上下文就是一種背景驾锰,什么樣的背景呢?來看下面一個例子:
from flask import Flask
app = Falsk(__name__)
@app.route('/')
def index():
return '<h1>Hello World!</h1>'
if __name__ == '__main__':
app.run(debug=True)
這是一個很簡單的Flask程序走越,它可以響應(yīng)一個請求:當在瀏覽器地址中輸入http://localhost:5000/
時椭豫,會返回一個頁面。其中index()
是一個視圖函數(shù)旨指。視圖函數(shù)要是想訪問請求對象赏酥,顯而易見是要將請求對象的參數(shù)傳入視圖函數(shù)。但是谆构,如果請求對象的參數(shù)變得很多裸扶,那么就要將每個視圖函數(shù)都增加相應(yīng)的數(shù)量的參數(shù),這樣會非常麻煩且冗雜搬素。
falsk可以創(chuàng)造一種“背景(Context)”呵晨,使得請求對象的參數(shù)全局化,也就是在這個背景的域里蔗蹋,所有的請求對象參數(shù)都能在視圖函數(shù)中被訪問何荚,而不需要在視圖函數(shù)中顯式的增加參數(shù)。
from flask import request
@app.route(‘/’)
def index():
user_agent = request.header.get('User-Agent')
return '<p>Your Brower is {}</p>'.format(user_agent)
其中request
就被臨時變成了全局變量猪杭。