Cambiar definicion de una funcion (Re: DB API 2.0)
Chema Cortés
chemacortes en wanadoo.es
Dom Jun 23 23:32:39 CEST 2002
-----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
Bueno, le he dado algunas vueltas de tuerca más pensando en cómo "corregir" el
módulo MySQLdb en caliente para que 'connect' acepte 'database' como
argumento en lugar de 'db'. Ya sé que es complicarse mucho, pero como creo
que puede resultar bastante ilustrativo para otros casos similares, lo pongo
aquí para quien le pueda interesar:
Creamos un módulo nuevo llamado "MySQLdb_wrapper.py":
#--- (módulo MySQLdb_wrapper) ----------------
import MySQLdb
save_connect=MySQLdb.connect
del MySQLdb.connect
def connect(*args,**kwargs):
# Cambiamos el argumento "database" por "db"
if kwargs.has_key("database"):
kwargs["db"]=kwargs["database"]
del kwargs["database"]
return save_connect(*args,**kwargs)
MySQLdb.connect=connect
#--- (fin módulo) -----------------------------
Para usarlo, haríamos:
### import MySQLdb
from MySQLdb_wrapper import MySQLdb
db = MySQLdb.connect(database="mydb", user="kmilo", host="localhost")
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
iD8DBQE9Fj53HLTQrABk8H0RApaoAKCzcpJTts9Bmajbtmxyr0GEF3NPdACfftRL
ZTjUtwu/8bjKUgAbdMMv+Ok=
=xVbh
-----END PGP SIGNATURE-----
Más información sobre la lista de distribución Python-es