【问题标题】:Keeping a pyodbc connection in a global in Flask - is it safe?在 Flask 的全局中保持 pyodbc 连接 - 安全吗?
【发布时间】:2020-12-17 10:41:12
【问题描述】:

This post 回答了我想在一般层面上提出的大部分问题,但似乎暗示如果做得正确,也可能将连接置于全局中。我想问一下我关于以这种方式使用 pyodbc 的特定假设是否正确。

在我的情况下,连接是只读的,在一个请求中一次打开的查询永远不会超过一个。鉴于这些限制,将 pyodbc 连接保持在全局范围内是否安全?我目前的做法是这样的。

所有查询都通过一个函数db_execute()
这会查找全局类成员 glb.cnxn,如果 None 则打开它。
然后它执行cur = glb.cnxn.cursor()cur.execute() 返回结果。
游标只用于获取列名,从不重复使用。

这样安全吗?

【问题讨论】:

    标签: python multithreading flask pyodbc


    【解决方案1】:

    记录在案:

    这种方法的危险在于长时间运行的查询会阻止glb.cnxn 被其他请求使用。因此,请求页面的第二个用户必须等待第一个用户查询完成。

    链接帖子中使用g“请求全局”的答案效果更好。

    【讨论】:

      猜你喜欢
      • 2014-07-06
      • 1970-01-01
      • 2020-06-10
      • 2022-11-16
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 2020-06-26
      相关资源
      最近更新 更多