[DB-SIG] DBAPI 3.0: Unified parameter style

Tony Locke tlocke at tlocke.org.uk
Fri Sep 13 19:54:35 CEST 2013


Hi, I'm a contributor to the PG8000 Postgres driver:

https://github.com/mfenniak/pg8000/tree/py3

Having read the interesting DBAPI 3.0 wiki page:

https://wiki.python.org/moin/DbApi3

I thought I'd give a suggestion for unified parameters. Apologies if
this has been suggested before, I did have a look at the archives :-)

In DBAPI 2.0, the parameters to execute() can be a sequence or a
mapping. In DBAPI 3.0, the paramstyle attribute should be removed, and
the style determined by whether the parameters are a sequence or
mapping. For a sequence the 'numeric' style is expected, and for a
mapping the 'named' style. For example:

execute("select * from emp where name = :1", ['horatio'])

execute("select * from emp where name = :name", {'name': 'horatio'})

The reason I like this solution is that if someone asked me how
parameters work in DBAPI, this one would be the easiest to explain!

Any thoughts?

Cheers,

Tony.


More information about the DB-SIG mailing list