Re: Solución a filtrar base de datos con una variable
vicente villaveces
jvicentevilla en yahoo.es
Jue Jul 19 16:56:51 CEST 2007
Chema Cortes <pych3m4 en gmail.com> escribió: El 19/07/07, Javier Castrillo escribió:
> On 18/07/07, vicente villaveces wrote:
> >
> > #for r in db.query("""SELECT * FROM estudiantes where cedu = "cedula" """).dictresult():
>
> Me parece que es así:
>
> for r in db.query("""SELECT * FROM estudiantes where cedu = %s """ ,
> (cedula)).dictresult():
Sería así, o casi, si el módulo usado siguiera la DB-API2. ...y digo
lo de casi porque los parámetros tienen que pasarse como tupla (sería
(cedula,) )
Con el módulo pg de pygresql no queda más remedio que construir la
query SQL completa:
sql="SELECT cedu,nomb,edad FROM estudiantes where cedu = '%s'" % cedula
for r in db.query(sql).dictresult():
...
> Saludos, Gracias a los Sres. Chema Cortes, Juan Jose Rojo, Javier Castillo y a toda la comundad de la lista.
He podido resolver el problema con las sugerencias hechas por el Sr. Chema Cortes, anexo el codigo final completo, para que sirva de ayuda a otros que esten en el camino.
#!/usr/bin/env python
#######################################################
# runs on the server, reads form input, prints html
#######################################################
import cgi, sys, pg
import cgitb; cgitb.enable ()
form = cgi.FieldStorage()
if not (form.has_key("cedula")):
print "<H1>Error</H1>"
print "Por favor ingrese su cedula."
db = pg.connect('datos', 'localhost', 5432, user= 'postgres', passwd= 'jose123456')
print "content-type: text/html" # plus blank line
##########
html = """
<TITLE>solbecas</TITLE>
<H1>SALUDOS</H1>
<H1>Esta página ha sido realizada con la metodologia Server-side Scripting, en el lenguaje de programación Python, en respuesta a un formulario enviado desde otra página realizada con Html</H1>
<HR> </HR>
<p>%s</p>
HR>"""
if not form.has_key('cedula'):
print html % ("Ingrese su número de cedula por favor")
else:
print html % ("Su número de cédula, %s." % form['cedula'].value)
print """<P>
<P>
<CENTER>
<TABLE BORDER=3>
<CAPTION>BASE DATOS ESTUDIANTES</CAPTION>
<TR>
<TH>CEDULA</TH>
<TH>NOMBRE</TH>
<TH>EDAD</TH>"""
cedula = form.getvalue("cedula")
print cedula
print "<br>"
sql="SELECT cedu,nomb,edad FROM estudiantes where cedu = '%s'" % cedula
for r in db.query(sql).dictresult():
print '''<tr>
<td>%(cedu)s</td>
<td>%(nomb)s</td>
<td>%(edad)s</td>
</tr>''' % r
print "</table></center></p></body></html>"
print 'fin del script '
Gracias.
Jose Vicente Villaveces.
"Que viva el software libre y los hombres que lo liberan"
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
---------------------------------
Sé un Mejor Amante del Cine
¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.
Más información sobre la lista de distribución Python-es