gpt4 book ai didi

python - 使用 webpy 线程特定数据

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:38 25 4
gpt4 key购买 nike

我正在用 webpy 编写一个小网络应用程序,我想知道是否有人对我遇到的一个小问题有任何信息。

我写了一个小的 ORM 系统,它似乎工作得很好。理想情况下,我想用 webpy 将它拼接起来,但似乎只是按原样使用它会导致线程问题(数据库连接是跨线程边界实例化/访问的,或者异常状态)。

有谁知道我如何(在 webpy 中)在与其余页面处理代码相同的线程上创建我的数据库连接?

最佳答案

我们将 SQLAlchemy 与 web.py 结合使用,并使用 Hook 根据请求创建和关闭数据库连接。 SQLAlchemy 处理池化,因此并非每个连接都是 tcp 连接。

您要使用的线程本地存储是 web.ctx 即。任何时候您访问 web.ctx 时,您只会看到该线程设置的属性。

我们的代码看起来像这样:

def sa_load_hook():
web.ctx.sadb = Session()

def sa_unload_hook():
web.ctx.sadb.close()

web.loadhooks['sasession'] = sa_load_hook
web.unloadhooks['sasession'] = sa_unload_hook

将 Session 替换为您的数据库连接函数,它应该可以正常工作。

关于python - 使用 webpy 线程特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/459608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com