gpt4 book ai didi

sqlite - flask 管理数据库连接 :memory:

转载 作者:行者123 更新时间:2023-12-03 16:01:50 25 4
gpt4 key购买 nike

我有一个 flask 应用程序,需要存储来自请求的一些信息。这些信息是非常短暂的,如果服务器重新启动,我就不再需要它了——所以我真的不需要持久性。

我已阅读 here可以使用保存在内存中的 Sqlite 数据库。管理数据库连接的最佳方法是什么?在 flask 文档中,数据库连接是按需创建的,但我的数据库 will be deleted if I close the connection .

最佳答案

使用 in memory sqlite db 的问题是您的 Sqlite in-memory 数据库无法从多个线程访问。

http://www.sqlite.org/inmemorydb.html

为了进一步解决这个问题,您可能会有多个进程运行您的应用程序,这也使得使用内存中的全局变量成为不可能。

因此,除非您可以确定您的应用程序只需要一个线程或一个进程(这不太可能),否则您将需要:

  • 使用磁盘来存储状态,例如磁盘上的 sqlite 数据库,甚至只是您解析的某些文件。
  • 使用与应用程序分开运行的守护进程来管理状态。

  • 我个人会选择选项 2。

    您可以为此使用 memcached,在中央服务器上运行,如果您只有一个,甚至可以在您的应用服务器上运行。这将允许您将状态(包括 python 对象!)临时存储在内存中,您甚至可以设置数据到期时间的超时值,这可能对您的应用程序有用。

    由于您使用的是 Flask,因此您对使用 memcached 缓存有一些非常好的内置支持,请在此处查看: http://flask.pocoo.org/docs/patterns/caching/

    至于让 memcached 在你的服务器上运行,它真的只是一个 apt-getyum install离开。如果您有任何问题或挑战,请告诉我,我很乐意更新。

    关于sqlite - flask 管理数据库连接 :memory:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13359771/

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