深入浅出Flask(8):flask使用请求的全局对象g

在开发flask程序中,经常会遇到这样的需求,也就是同一个请求下有一些数据是共用的,但是由于代码是放在不同的模块中,要使用相同的数据,要么使用参数来传送,要么使用python的全局对象。使用参数来传送会比较麻烦一些,如果使用python的全局对象,又由于flask是跨不同线程调用,这样会导入一些安全问题,或者自己要做更多的处理。又或者想复用相事的功能代码,也可以放到全局对象,比如搜索功能的表单输入的实现。

比如每一个请求过来,都需要在页面显示这个用户的名称,那么怎么样实现呢?一般来说用户的登录的ID是保存在session里,但用户的名称是保存在数据库里,当连接过来时,就可以根据用户的session找到ID,然后再根据ID找到用户的名称,这样就可以保存起来到请求全局对象里,其它所有使用到的代码,都可以直接使用这个全局对象g,不需要再次根据session里找到ID,再去数据库查找一次。因此这样保存的数据,可以减一次请求内的查询的动作,减少数据库的操作。

不过,要注意这个g对象,它是一次请求中有效,不能跨越不同的请求的。如果有不同的请求,需要使用session来保存,或者其它内存缓存来保存。因为每一个请

Original: https://blog.csdn.net/caimouse/article/details/119682355
Author: caimouse
Title: 深入浅出Flask(8):flask使用请求的全局对象g

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/748897/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球