[Python-es] clase conexion

Luis Medel Cáceres luis en luismedel.com
Vie Jul 4 16:37:46 CEST 2008


2008/7/4 Luis Medel Cáceres <luis en luismedel.com>:
> On Fri, Jul 4, 2008 at 4:06 PM,  <inf200468 en ucf.edu.cu> wrote:
>>
>>
>> Hola
>> estoy tratando de hacer una clase que se conecte a una bd en postgre, en el
>> __init__ de mi clase, inicialice
>> self.host
>> self.user....etc, cada uno con
>> valores y luego escribi una funcion
>> def conex():
>> ���  conn
>> = psycopg2.connect("dbname=self.dbname user=self.user
>> host=self.host��  password=self.password");
>> pero no se conecta
>> de esta forma, y si le pongo los valores directos dentro de connect si se conecta, como
>> puedo arreglarlo.
>> gracias
>>
>>
>> --------------------------------
>> Servicio del Grupo de Redes
>> Universidad de Cienfuegos
>> Contacto: adminred en ucf.edu.cu
>>
>> _______________________________________________
>> Lista de correo Python-es
>> http://listas.aditel.org/listinfo/python-es
>> FAQ: http://listas.aditel.org/faqpyes
>>
>
> Por algún motivo no veo bien el texto del correo pero creo que hay dos cosas...
>
> 1. Has entrecomillado los parámetros en la llamada a connect () y no
> estás pasando los valores de las variables, sino sus nombres. Nunca he
> usado psycopg2 pero, ¿puede ser así?:
>
> psycopg2.connect(dbname=self.dbname, user=self.user, host=self.host,
> password=self.password")
>
> En el caso de ser correcto lo que pones, yo interpolaría los valores
>
> psycopg2.connect("dbname=%s, user=%s, host=%s, password=%s" %
> (self.dbname, self.user, self.host, self.password))
>
> ...y 2. La llamada a connect () termina en ";". ¿No te da ningún error
> de sintaxis?
>
> Un saludo.
>
> --
> Luis Medel
> http://luismedel.com
>

Ah! y me acabo de dar cuenta de que en la definición de la función no
le has puesto la referencia. Probablemente *este* sea el error que te
impide conectar :)

def conex (self):
    [...]


Un saludo

--
Luis Medel
http://luismedel.com


Más información sobre la lista de distribución Python-es