4

我有一个需要支持 Python 2.4 和 2.6 的应用程序。在 2.6 中,sqlite3 取代了 sqlite。paramstyle除了差异之外,我还有什么需要担心的吗?这是一种体面的处理方式吗?

try:
    import sqlite3 as sqlite
except ImportError:
    import sqlite

...

if sqlite.paramstyle == 'qmark':
    query = 'SELECT foo FROM bar where baz = ?'
else:
    query = 'SELECT foo FROM bar where baz = %s'
cursor.execute(query, params)
4

1 回答 1

7

在 python 2.4 上,使用pysqlite. 这与 2.5 版中添加到 Python 标准库中的包完全相同,当时它被重命名为sqlite3.

由于是同一个包,API没有区别,只需要使用try except ImportError测试即可:

try:
    import sqlite3
except ImportError:
    from pysqlite2 import dbapi2 as sqlite3
于 2012-11-05T16:20:26.043 回答