在阅读《Flask Web开发》的过程中,出现了类似程序上下文与请求上下文的字眼。“上下文”这个字眼一般都是出现在阅读中的。在这里的突然出现,着实让我一头雾水。在我看来,作者将"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程序,它可以响应一个请求:当在浏览器地址中输入http://localhost:5000/
时,会返回一个页面。其中index()
是一个视图函数。视图函数要是想访问请求对象,显而易见是要将请求对象的参数传入视图函数。但是,如果请求对象的参数变得很多,那么就要将每个视图函数都增加相应的数量的参数,这样会非常麻烦且冗杂。
falsk可以创造一种“背景(Context)”,使得请求对象的参数全局化,也就是在这个背景的域里,所有的请求对象参数都能在视图函数中被访问,而不需要在视图函数中显式的增加参数。
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
就被临时变成了全局变量。