美文网首页
Flask中App Context与Request Contex

Flask中App Context与Request Contex

作者: _屿屿屿_ | 来源:发表于2017-09-18 18:36 被阅读0次

    在阅读《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就被临时变成了全局变量。

    相关文章

      网友评论

          本文标题:Flask中App Context与Request Contex

          本文链接:https://www.haomeiwen.com/subject/thwbsxtx.html