正在检查sqlalchemy中的sqlite连接错误

2024-10-01 13:32:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用sqlalchemy连接到本地sqlite数据库。在

这是我使用的密码-

db = sqlalchemy.create_engine('sqlite:///Latencydb.db')
metadata = sqlalchemy.MetaData(db)

即使文件不存在,也不会引发异常。即使db.connect()也不会抛出任何异常。在

有没有方法可以检查数据库连接是否成功?(除了检查数据库中是否存在特定的表?)在

我在Python2.7.2(Ubuntu)上使用sqlite 3.7.7和sqlalchemy 0.6.8


Tags: 文件方法数据库密码dbsqlitesqlalchemyubuntu
1条回答
网友
1楼 · 发布于 2024-10-01 13:32:26

在Python版本<;3.4(包括python2.7)上,当您连接到尚不存在的SQLite数据库文件时,无法阻止SQLite为您创建文件。在

因此,在较早的Python版本中,您必须首先使用不同的方法来测试文件的存在性。一个简单的^{}就足够了:

import os.path

database = '/path/to/database.db'
if not os.path.exists(database):
    raise ValueError('Invalid database path: %s' % (database,)
db = sqlalchemy.create_engine('sqlite:///' + database)

在较新的Python版本中,sqlite3库支持SQLite URI syntax,因此您可以指定一个mode=rw参数来禁用默认的rwc(读写创建)模式,前提是在sqlite3.connect()调用上设置uri=True。在

SQLAlchemy不支持SQLite URI参数,但是您可以使用^{} parameter来传递URI标志和您自己的连接字符串:

^{pr2}$

相关问题 更多 >