在多个 Python 模块上使用相同的 SQLite3 连接

Using the same SQLite3 connection over multiple Python modules

我正在使用 python-telegram-bot 在 Python3 中编写 Telegram Bot。目前,所有代码都放在一个文件中(>1k 行),结构如下:

    import ...
    a lot of bot's functions called by python-telegram-bot
    database connection (SQLite3 using SQLAlchemy)
    message's handlers
    bot.polling()

我想通过对具有相似目的的函数进行分组,将这个整体文件拆分为多个 python 的文件。但是,我不知道如何处理数据库连接:在主文件中,我有一个使用 sqlalchemy 创建并被所有其他函数使用的 session“全局”变量,因为它在同一范围内。如何正确管理多个文件?什么是最好的方法?

在另一个文件中创建数据库连接并分配给某个变量。

之后导入并在任何需要 get/modify 数据库中数据的地方使用它。

P.S. 不要在该文件中执行任何 app 导入以避免循环依赖。

P.P.S. Link provided by @wwii 应该有助于示例