Flask-应用全局变量g

1.认识g对象

  • g作为 flask 程序全局的一个临时变量,充当中间媒介的作用,我们可以通过它传递一些数据,例如一个数据库连接或者当前登入的用户。
  • g保存的是当前请求的全局变量,仅在当前这一个请求内,从一个函数到另一个函数共享数据,不同的请求会有不同的全局变量,通过不同的thread id区别

2.同session的区别:

  • session有过期时间,在未过期之前,同一客户端发来的不同request都能够共享这个session

3.g对象的使用

属性的设置:

g.name = '张三'

属性的获取:

既可以使用正常对象属性获取的方式:

name = g.name

也可以使用 get() 方法来获取(推荐),同字典操作,可以通过第二个参数来设置默认值,如果不输入,则默认为None

name = g.get("name","李四")

示例:

from flask import Flask, g

app = Flask(__name__)


def test_g():
    print(g.get('name', None))
    g.name = '李四'


@app.route('/test')
def test():
    g.name = '张三'
    test_g()  # 控制台会打印'张三'
    print(g.name)  # 李四
    return 'test'


if __name__ == '__main__':
    app.run()

浏览器中输入'http://127.0.0.1:5000/test'

控制台会依次输出:张三  李四

 

posted @ 2020-12-26 19:59  eliwang  阅读(9058)  评论(0编辑  收藏  举报