4

Python2.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 に答える