[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