Foros del Web » Programando para Internet » Python »

recorrer lista de input

Estas en el tema de recorrer lista de input en el foro de Python en Foros del Web. Hola estimados vengo a este foro de python para ver si me pueden orientar un poco , lo que ocurre es que tengo un listado ...
  #1 (permalink)  
Antiguo 14/12/2010, 13:10
 
Fecha de Ingreso: septiembre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
recorrer lista de input

Hola estimados vengo a este foro de python para ver si me pueden orientar un poco ,

lo que ocurre es que tengo un listado de input:

<input type="text" name="valor[] "/>
<input type="text" name="valor[] "/>
<input type="text" name="valor[] "/>...

y recorrerlos para luego guardarlos en base de datos, esto en php lo solucionaria con un foreach, pero en python no se como hacerlo, llevo muy poco en este lenguaje

espero que puedan ayudarme

muchas gracias!!
  #2 (permalink)  
Antiguo 14/12/2010, 13:29
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: recorrer lista de input

Si en php tienes que hacer un foreach estoy casi seguro que en python tienes que hacer un for.

¿Específicamente que es lo quieres hacer?
Postea como lo harías en php
  #3 (permalink)  
Antiguo 14/12/2010, 14:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: recorrer lista de input

estimado gracias por responder mira te cuento lo que quiero hacer es lo siguiente

tengo un generador de input el cual yo coloco el numero de input y me crea la cantidad que requiero quedando en formato:

<input type="text" name="valor[]" />
<input type="text" name="valor[]" />
<input type="text" name="valor[]" />
<input type="text" name="valor[]" />...

yo en php lo recorro de la siguiente manera

Código PHP:
$valor $_POST['valor'];
foreach(
$valor as $key => $valor){

$consulta "INSERT INTO.....


saludos!!
  #4 (permalink)  
Antiguo 14/12/2010, 14:46
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: recorrer lista de input

Ok solo te falto decirnos con que modulo/framework estas trabajando para web?

cgi, wsgi, mod_python, django, algún otro?

Si estas trabajando con cgi seria:
Código Python:
Ver original
  1. import cgi
  2. data = cgi.FieldStorage()
  3. for key, value in data:
  4.     query = "insert into..."
  #5 (permalink)  
Antiguo 14/12/2010, 14:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: recorrer lista de input

Estoy trabajando con django, por ahi en un foro vi que las listas las tomaban de esta manera

v = request.POST.getlist('valor')


pero aun no se recorrerlas xD!
  #6 (permalink)  
Antiguo 14/12/2010, 15:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: recorrer lista de input

De esta manera lo estoy intentando pero sin embargo aun no me funciona :(


Código Python:
Ver original
  1. t = request.POST.getlist('txt')
  2.     g = request.POST.getlist('gasto')
  3.     v = request.POST.getlist('valor')
  4.    
  5.     for(txt,gasto,valor) in zip(t,g,v):
  6.         T = TipoGasto.objects.get(pk=gasto)
  7.         D=SolDetalle()
  8.         D.solicitud = solicitud
  9.         D.detalle = txt
  10.         D.tgasto = T
  11.         D.valor = valor
  12.         D.save()
  #7 (permalink)  
Antiguo 14/12/2010, 15:37
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: recorrer lista de input

Por lo que leí debería bastar con esto.

Código Python:
Ver original
  1. for k, v in request.Post.iteritems():
  2.     print k, v

Etiquetas: input, lista, recorrer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:45.