APSW is not DBAPI compliant but it's close enough

Note that I do document how APSW differs from DBAPI.

http://www.rogerbinns.com/apsw.html#dbapinotes

APSW is very nice.

Thanks :-)

I've used it and PySQLite and I'd recommend APSW. It's "thinner".

Note that it is almost impossible to do a DBAPI compliant interface
to SQLite. For example DBAPI requires providing time types which
SQLite doesn't natively provide. A wrapper has to "fake" it. Similarly
various transaction methods must be provided (commit, rollback etc)
which are almost impossible to implement without sniffing the SQL. Also don't kid yourself about how easy it is to move from one
DBAPI compliant system to another. Pretty much all projects provide
their own layer as glue between their code and the DBAPI drivers.


If you want DBAPI compliance then use pysqlite.  It tries really
hard to fill in the necessary pieces that SQLite doesn't have.

On the other hand if you only want to use SQLite then use APSW.
It doesn't hide anything and gives you full access to all SQLite
functionality.  You can also do things like define your own
collations and functions in Python.

Where applicable APSW does use DBAPI conventions and names.

As for a web front end, I suggest you make an XML-RPC wrapper
around your database and then access that from whatever you
want to use for your web stuff.

As an example of something I worked on in the past, I implemented
a PHP front end using Smarty templates and a Python process on
the backend which was talked at using XML-RPC.  The Python process
did everything including managing sessions and storing the templates.
The PHP/Smarty code dealt with display.

This let me use each environment for what they were best at and
decoupled them.  I could also have done other front ends such
as a command line, which comes in really handy if you need to
automate some processes.

Roger

Reply via email to