When I see the examples for pysqlite, there are two use cases for the SQLite library.
from sqlite3 import dbapi2 as sqlite3
and
import sqlite3
Why there are two ways to support the sqlite3 api? W开发者_JAVA百科hat's the difference between the two? Are they the same? In normal use, which would be preferred.
ADDED
I knew that they are different in terms of namespace, and I wanted ask if they are the same in terms of usage, I mean, do they have the same API set?
They are the same. In the Lib/
directory of my Python installation (v2.6), the sqlite3
package contains a __init__.py
file with this:
from dbapi2 import *
Which means that the two ways of importing are absolutely identical.
That said, I definitely recommend just using import sqlite3
- as this is the documented approach.
They are not the same.
In the first case, you are importing the dbapi2 symbol from the sqlite3 module into the current namespace.
In the last case, you just import the sqlite3 module in the namespace.
The difference is that in the first case you can directly use dbapi2 (aliased as sqlite3) class, which in the latter case, you would have to reference to sqlite3.dbapi2
all the time you want to reference it.
See for more information the python documentation
精彩评论