支持sqlite和sqlite3

时间:2012-11-05 16:14:19

标签: python sqlite

我有一个需要支持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)

1 个答案:

答案 0 :(得分:6)

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

由于它是相同的包,因此API没有差异,您只需使用try except ImportError测试:

try:
    import sqlite3
except ImportError:
    from pysqlite2 import dbapi2 as sqlite3