gpt4 book ai didi

python - 如何使用Sqlalchemy和Flask关闭MySql连接?

转载 作者:行者123 更新时间:2023-11-29 15:17:39 29 4
gpt4 key购买 nike


我使用 Flask 构建了一个 API,并使用一项服务(如下所示)来创建数据库连接。

class DatabaseService:
def __init__(self):
self.connection_string = "foo"

def create_connection(self):
engine = create_engine(self.connection_string)
Session = scoped_session(sessionmaker(bind=engine))
return Session

在我的 app.py 中,我按照文档的建议向 Flask 应用程序上下文 (g) 添加和删除这些 session 。
所以我可以在需要时引用 g.session

def get_session():
if 'session' not int g:
session = database_service.create_session()
g.session = session

@app.teardown_appcontext
def shutdown_session(exception=None):
if 'session' in g:
g.session.remove()

return None

这样每个请求都有自己的 session ,该 session 将在处理后关闭。我说得对吗?
我不明白为什么在请求完成后连接在我的数据库上仍然有效。
我总是运行命令 show processlist 我可以看到多个连接从我的 API 中休眠。

最佳答案

我发现每个请求打开和关闭 session 没有问题

my_session = Session(engine)
my_session.execute(some_query)
my_session.close()

关于python - 如何使用Sqlalchemy和Flask关闭MySql连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59584161/

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