[pyar] web2py (mi primer post)

Marcelo Picco marcelo.picco en gmail.com
Mar Ago 25 16:38:47 ART 2015


Lei casi todo el book, me quedan algunas cositas.
Lo que trato de hacer es levantar unos archivos de excel o csv tomar datos
de ellos y guardarlos en una tabla de mi base de datos MySQL

Empece con subir un archivo y guardar los datos, pero no puedo manipularlos
y luego guardarlos.
El código que uso.

*DAL:*
db.define_table('t_recibos',
    Field('f_poliza', type='reference t_polizas',
          unique=True,readable=True,label=T('Poliza')),
    Field('f_endoso', type='integer',
          label=T('Endoso')),
    Field('f_cuota', type='integer',
          label=T('Cuota')),
    Field('f_premio', type='double',
          label=T('Premio')),
    Field('f_fecha',  type='date',
          label=T('Fecha')),
    Field('f_vencimiento',  type='date',
          label=T('Vencimiento')),
    Field('f_ctacte', type='boolean',
          label=T('CtaCte')),
    Field('f_cobrado', type='boolean',
          label=T('Cobrado')),
    Field('f_rendido', type='boolean',
          label=T('Rendido')),
    Field('f_girado', type='boolean',
          label=T('Girado')),
    Field('f_cia',  type='string',
          label=T('Compañia')),
    #Field('bandera', length=1, default=""),
    auth.signature,
    format='%(f_poliza)s',
    migrate=False)

db.define_table('t_recibos_archive',db.t_recibos,Field('current_record','reference
t_recibos',readable=False,writable=False))

#Validaciones t_recibos
db.t_recibos.f_cia.requires =
IS_IN_DB(db,'t_cia.id',"%(f_cia)s",zero='Seleccionar',error_message='No
existe esa Compañia')
db.t_recibos.f_vencimiento.requires =
IS_DATE(format=T('%d/%m/%Y'),error_message='La fecha debe ser DD/MM/AAAA!')
db.t_recibos.f_poliza.requires = IS_NOT_IN_DB(db,
't_recibos.f_poliza',error_message='Ese numero de poliza ya existe en la
base de datos')

*Controlador:*
@auth.requires_login()
def subir_recibos():
    if request.vars.csvfile != None:
        # defino valores
        table = db[request.vars.table]
        file = request.vars.csvfile.file
        response.flash = file
        # importo archivo csv
        table.import_from_csv_file(file)

        response.flash = 'Datos subidos'
    return dict()

*Vista:*
{{extend 'layout.html'}}
{{=FORM(INPUT(_type='file',_name='csvfile'),INPUT(_type='hidden',_value='t_recibos',_name='table'),INPUT(_type='submit',_value='Upload'))}}


Cuestiones que necesito resolver:
- Si no subo en el csv el id, no guarda el numero de póliza. O mejor
expresado en el csv me viene el numero de póliza no el id de mi tabla.
- Duplica los números de póliza (no respeta la validación del DAL)
- Necesito identificar los csv porque vienen con distintos formatos.

*Algo así ya lo hice en python hace algún tiempo pero todavía no capto como
hacer lo mismo con web2py.*

El código rudimentario de lo que hice en python

import csv
import os, sys

farticulosprov = open('artidef.csv')
articulosprov = csv.reader(farticulosprov)

fproveedores = open('Proveedores.csv')
proveedores = csv.reader(fproveedores)

dproveedores = dict(proveedores)
contador = 0

artidef = csv.writer(open('artidefinitivo.csv', 'a'))

for artprov in articulosprov:
    reftechni = str(artprov[1])
    if dproveedores.has_key(reftechni):
        if not artprov[0] == '[null]':
            contador = contador + 1
            artprov[1] = dproveedores[reftechni]
            artidef.writerow(artprov)
            print "existe y no null" + reftechni

print contador


Bueno, gracias de antemano.

[image: photo]
*Marcelo Picco*
Informatico
p:0358 4643949 | m:358 4375547 | e:marcelo.picco en gmail.com | a:Sarmiento
1086 - Rio Cuarto | Córdoba | Argentina
<http://facebook.com/marcelo.picco>  <http://twitter.com/chelopicco>
Get a signature like this: Click here!
<http://ws-promos.appspot.com/r?rdata=eyJydXJsIjogImh0dHA6Ly93d3cud2lzZXN0YW1wLmNvbS9lbWFpbC1pbnN0YWxsP3dzX25jaWQ9NjcyMjk0MDA4JnV0bV9zb3VyY2U9ZXh0ZW5zaW9uJnV0bV9tZWRpdW09ZW1haWwmdXRtX2NhbXBhaWduPXByb21vXzU3MzI1Njg1NDg3Njk3OTIiLCAiZSI6ICI1NzMyNTY4NTQ4NzY5NzkyIn0=>

El 25 de agosto de 2015, 12:08 p. m., Jose Jachuf<jjachuf en gmail.com>
escribió:

>
>
> El mar., 25 ago. 2015 a las 10:22, Marcelo Picco (<marcelo.picco en gmail.com>)
> escribió:
>
>
> Hola Marcelo.
>
> Leiste el libro [1]?
> El grupo en ingles tiene mucha actividad.
>
> Qué dudas concretas tenes?
>
> José
>
>
>
> [1] http://web2py.com/books/
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
-------------------------------------------------------
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150825/382cd78f/attachment.html>


More information about the pyar mailing list