我们在flask一个请求内,也许是是一个具体视图函数内的请求,g变量是有效的,那么你设置一般变量也是可以的啊,为啥要专门设置一个全局变量呢,其实我们在这个视图函数内使用其他函数的时候,其他函数如果是有参数的话,需要我们传递进去的,但是使用了全局变量g的话,相当于
global var
在这次请求了注册了一个全局变量,那么他的作用域,使用期限都仅限于此次的请求,在这个请求内所有调用的函数都可以使用此全局变量,请求结束,g变量即销毁,最后我理解是为啥要这么搞? 下面上一个我的例子,不是百度copy的。
#!/usr/bin/python3 #coding:utf-8 from flask import Flask,g app = Flask(__name__) app.config['SECRET_KEY'] = 'merci' ctx = app.app_context() ctx.push() def test(): name = 'sulao' g.user = name test_g() test2_g() print(name, g.user) def test_g(): print("Global var g is %s" % g.user) def test2_g(): print("Test var g is %s again" % g.user) if __name__ == "__main__": test()
上面例子打印结果是
注意了,全局变量g也是一种上下文请求,所以我们需要激活上下文,app_context()激活以后,我们需要推入栈中使用push()方法。flask内大部分的上下文都需要先激活才可以进行使用,具体哪些还得后期整理。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/619
相关推荐
- linux使用pdsh/pdcp批量操作服务器和批量编译nginx实际操作
- ubuntu22.04编译安装postgresql17.5
- ubuntu使用deb包安装指定版本内核
- ubuntu修改grub引导切换到指定内核的方法
- ubuntu使用nvbandwidth测试单节点gpu带宽性能
- nvidia-peermem和dmabuf两种GDR方式的区别
- ubuntu22.04关闭自动更新和禁止unattended-upgrades服务开机启动
- 容器云中部署TigerVNC以及使用和常见问题处理方式
- GPU性能分析工具nsys(Nsight Systems)安装和简单使用
- GPU锁频的方法以及pytorch验证测试代码
评论列表