DB API 2.0
kmilo
kmilo en softhome.net
Dom Jun 23 21:26:16 CEST 2002
> def db_import(sgdb):
> if sgdb=="mysql":
> return __import__("MySQLdb")
> elif sgdb=="postgresql":
> return __import__("pgdb")
> else:
> return None
por que tiene que ser __import__ en vez de import?
On Sat, 22 Jun 2002 17:50:23 +0200
Chema Cortés <chemacortes en wanadoo.es> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> El Jue 20 Jun 2002 23:59, kmilo escribió:
>
> > 1) la linea donde se importa el modulo adecuado para comunicarse con la
> > base de datos
> >
> > *postgreSQL
> > import pgdb
> >
> > *MySQL
> > import MySQLdb
> >
> > 2)la linea en que se conecta a la base de datos
> > *postgreSQL
> > db = pgdb.connect(database='mydb',user='kmilo', host='localhost')
> > ^^^^^^^^
> > *MySQL
> > db = MySQLdb.connect(db="mydb", user="kmilo", host="localhost")
> > ^^
> >
> > Es una lastima que la persona que hizo el modulo para MySQL no se ciqera a
> > la API y alla dejado la variable database como db
>
> El nombre "database" es sólo una recomendación de la API2, algo que no tiene
> porqué ser obligario, y que incluso puede ser totalmente prescindible si
> trabajas con DSNs (en windows).
>
> En lugar de tener dos ficheros separados "casi" idénticos, yo probaría a
> juntarlos en un único "supra-módulo" o, tal vez, en una clase (dependerá un
> poco del uso que le des):
>
> def db_import(sgdb):
> if sgdb=="mysql":
> return __import__("MySQLdb")
> elif sgdb=="postgresql":
> return __import__("pgdb")
> else:
> return None
>
> def db_parameters(sgbd, database, user, password, host):
> if sgdb=="mysql":
> params={"db":database,"user":user,"password":password,"host":host}
> elif sgdb=="postgresql":
> params={"database":database,"user":user,"password":password,"host":host}
> else:
> params={}
> return params
>
>
> ####
> # Ahora un ejemplo
>
> mydb=db_import("mysql")
> params=db_parameters(sgdb="mysql",database="mibase",user="yomismo",host="localhost")
> db=mydb.connect(**params)
>
> Ya sé que daña a los ojos este 'connect'. Lo mejor es seguir con la idea y
> completar la API de este supramódulo. La ventaja de hacerlo así es que
> resulta fácil añadir otros gestores de bases de datos sin cambiar mucho
> código.
>
> > PDT2:
> > chema, para efectos de mayor sencillez en el codigo, no puse el
> > diccionario, pero pa la proxima lo hago, y gracias por lo del modulo
> > mxDateTime
>
> ¡Vamos!, lo dices como si fuera una obligación. Que a mí me encante usar
> diccionarios no quiere decir que sea lo mejor. A veces, lo que hoy me parece
> fenomenal, mañana me puede parecer muy mejorable. Señal de que todavía sigo
> aprendiendo ;-)
>
>
> Saludos,
> - --
> Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0
> ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien
> PYTANDO http://pytando.sf.net | se contenta con lo que sabe"
> PGPKEY: mailto:chemacortes en wanadoo.es?subject=__PGPKEY__
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.0.6 (GNU/Linux)
> Comment: For info see http://www.gnupg.org
>
> iD8DBQE9FJzAHLTQrABk8H0RAsCPAKCukfRMFDzAUNLgROwISMgRA8gntgCgw0PU
> w76fs/QQ1qVz4dbwFMQ7ZpM=
> =GUx7
> -----END PGP SIGNATURE-----
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo.py/python-es
--
What's Python Anyway ?
Well, that's easy: the most elegant, easy-to-learn and yet powerfull
language on the planet
http://www.egenix.com/files/python/
Sent by Sylpheed 0.7.2 claws in SuSe 8.0 Profesional
Linux user number 269263.
Homepage: http://kmiloweb.netfirms.com/
Más información sobre la lista de distribución Python-es