【问题标题】:Where does my sqlite database go?我的 sqlite 数据库在哪里?
【发布时间】:2014-02-18 06:36:12
【问题描述】:

这可能是一个愚蠢的问题,但我有点困惑 SQLAlchemy 如何与我的 Flask 应用程序使用的实际数据库一起工作。我有一个 python 文件,models.py,它定义了一个 SQLAlchemy 数据库模式,然后我的这部分代码为它创建了数据库

if __name__ == '__main__':
    from datetime import timedelta

    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker

    engine = create_engine('sqlite://', echo=True)

    Base.metadata.create_all(engine)
    Session = sessionmaker(bind=engine)
    session = Session()

    # Add a sample user
    user = User(name='Philip House', password="test")
    session.add(user)
    session.commit()

我运行该文件并且它工作正常,但现在我对数据库发生了什么感到困惑......我如何在另一个应用程序中访问它?我还听说它可能只是在内存中,如果是这种情况,我如何使它成为我可以使用我的应用程序的永久数据库文件?

在我的应用程序中,这也是我在配置文件中引用我的 sqlite 数据库的方式:

PWD = os.path.abspath(os.curdir)
DEBUG=True
SQLALCHEMY_DATABASE_URI = 'sqlite:///{}/arkaios.db'.format(PWD)

我不知道这是否有任何帮助。

谢谢!!

【问题讨论】:

  • 如果您对答案感到满意,请接受!

标签: sqlite sqlalchemy flask flask-sqlalchemy


【解决方案1】:

这是使用 SQLite 连接到 SQLAlchemy 的 docs

正如您所猜测的,当您使用sqlite:// 作为连接字符串时,您实际上是在内存中创建了一个 SQLite 数据库。如果您要使用sqlite:///{}/arkaios.db'.format(PWD),您将在当前目录中创建一个新数据库。如果您打算这样做以便可以从其他应用程序访问该数据库,那么您应该从配置文件中导入连接字符串并使用它而不是 sqlite://

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 2012-02-28
    • 2014-06-05
    • 1970-01-01
    • 2014-04-19
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多