[Python-es] como descargar un archivo creado con python

marcelo martinez mmartinez en boomerangip.com
Mar Abr 27 18:30:35 CEST 2010


Mis saludos:

Bueno mi codigo es el siguente:

def cdr():
    import time
    import csv
    import os
    desde=time.time()
    hoy=time.time()
    desde=time.strftime('%Y-%m-%d 00:00:00',time.localtime(desde))
    hasta=time.strftime('%Y-%m-%d 23:59:59',time.localtime(hoy))
    accountcode=db.executesql("SELECT id_accountcode FROM accountcodes order
by id_accountcode")
    account=[]
    a=db.llamadas_moviles#.with_alias('a')
    for ac in accountcode:
        account.append(ac[0])
    form=FORM(TABLE(TR("Desde ( Año-mes-día
):",INPUT(_type="datetime",_name="desde",_value=desde,_class='datetime',_id="datetlimite",
requires=IS_DATETIME())),
                    TR("Hasta ( Año-mes-día etlimite1",
requires=IS_DATETIME())),):",INPUT(_type="datetime",_name="hasta",_value=hasta,_class='datetime',_id="dat

TR("Clientes",SELECT(account,_name="account",requires=IS_IN_SET(account))),
                    TR("",INPUT(_type="submit",_value="Consultar"))
                    ))
    rows=''
    rows1=''
    min=0
    cia=''
    if form.accepts(request.vars,session) or request.vars.click=='True':
        query=((a.call_dialstatus=='ANSWER') &
(a.id_accountcode==request.vars.account) & (a.call_inicio >=
request.vars.desde) & (a.call_inicio <= request.vars.hasta))
        rows=db(query).select(a.call_inicio,
a.call_timedura,a.call_duracion,a.call_dialstatus, a.call_num_destino,
orderby=a.call_inicio)
        rows1 = db(query).select(a.call_duracion.sum())
        minu=rows1[0]._extra[a.call_duracion.sum()]
        min=(int(minu))/60
        cia=db.executesql("SELECT llamadas_moviles.call_telco_destino,
telcos.nombre_telco, sum(call_duracion) / 60 as Tot_minutos FROM
llamadas_moviles join telcos on llamadas_moviles.call_telco_destino =
telcos.id_telco WHERE call_inicio >= '%s' and call_inicio <= '%s' and
id_accountcode='%s' GROUP BY llamadas_moviles.call_telco_destino,
telcos.nombre_telco;"%(request.vars.desde,request.vars.hasta,request.vars.account))

        #open('/tmp/tmp.csv','w').write(str(rows))
        if request.vars.click == 'True':
          import cStringIO
          import gzip
          s=cStringIO.StringIO()
          response.headers['Content-Type']='application/csv'
          response.headers['Content-Disposition'] = 'attachment;
filename=CDR%s_%s.csv'%(request.vars.account,request.vars.hasta)
          rows.export_to_csv_file(s)
          return s.getvalue()

    return dict(form=form, rows=rows, min=min, cia=cia)

Lo que necesito hacer es crear una funcion donde me genere un archivo csv a
partir de rows, o sea pasar a esa funcion el rows, hasta ahi estoy bien,
despues poder descargar ese archivo generado a mi computador o al computador
de donde se conecte, eso no lo se, la idea que tengo es crear otro from que
se puede llamar form1 que sea solo un boton para descargar, ahora mi
pregunta, como le paso el rows del form al form1?

Ojala me puedan ayudar

el codigo anterior funciona pero no es como lo deseo hacer.

-- 
Atte.
Marcelo Martinez P.
Boomerang ip.
Chillan
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100427/5f99994c/attachment.html>


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