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 @   eliwang  阅读(9348)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示