Angel Segovia
TECNICO ANALISTA DE SISTEMAS
domingo, 14 de octubre de 2012
definir una tabla de usuarios en web2py
db.define_table(
auth.settings.table_user_name,
Field('registration_id', length=64,
writable=False, readable=False, default='',label=T('ID de registracion')),
Field('first_name', length=64, default='',label=T('Nombre')),
Field('last_name', length=64, default='',label=T('Apellido')),
Field("dni",label=T('DNI'), unique=True),
Field('TIPO_DNI', 'string',requires=IS_IN_SET([ 'D.N.I', 'CEDULA','PASAPORTE']),required=True,label=T('TIPO DE DOCUMENTO ')),
Field('gender', requires=IS_IN_SET(['Hombre', 'Mujer']),label=T('Genero')),
Field('password', length=64,readable=False, label=('Contraseña')),
Field('email', length=64, default='', unique=True,label=T('E-Mail')),
Field("calle",label=T('Calle')),
Field("nro_calle", 'integer',label=T('Nro de calle')),
Field("barrio", label=T('Barrio')),
Field("telefono",label=T('Telefono')),
Field('registration_key', length=64,
writable=False, readable=False, default='',label=T('Clave de registracion')),
Field('reset_password_key', length=64,
writable=False, readable=False, default='',label=T('Clave de contraseña de restablecimiento')),
Field('clientes_foto','upload'),
Field('codigo_CLIENTES','integer',required=True,label=T('CODIGO DE CLIENTES'), unique=True),
Field('CUIT_CLIENTES',"string", length=13,required=True,label=T('N° CUIT DEL CLIENTES'), unique=True),
Field('TIPO_EMPRESA',requires=IS_IN_SET([ 'PRODUCCION', 'COMERCIAL','SERVICIOS'])),
Field('tipo_client_responsable','string',
requires=IS_IN_SET([ 'IVA', 'EXENTO','NORESPONSABLE','MONOTRIBUTISTA']),required=True,label=T('TIPO DE RESP.INSC')),
Field('fecha_Alta_CLIENTE','date',required=True,label=T('FECHA DE ALTA')),
Field('fecha_Baja_CLIENTE','date',writable=False,readable=False),)
db.auth_user.dni.requires = IS_NOT_IN_DB(db,'auth_user.dni')
db.auth_user.codigo_CLIENTES.requires = IS_NOT_IN_DB(db,'auth_user.codigo_CLIENTES')
db.auth_user.CUIT_CLIENTES.requires = IS_NOT_IN_DB(db,'auth_user.CUIT_CLIENTES')
viernes, 12 de octubre de 2012
domingo, 7 de octubre de 2012
pequeño ejemplo en python un ABM con Sqlite3
#segovia-altas-bajas-sqlite3
import sqlite3 as dbapi
import os
arch="bbdd.dat"
def AgregaDatoDeptos(): #Agrega datos a la tabla deptos si el depto coincide con alguno de personas imprime la direccion
bbdd = dbapi.connect(arch)
cursor = bbdd.cursor()
print('Ingrese el Depto')
dep=raw_input('Depto: ');
while (dep!='0'):
dire=raw_input('Direccion: ');
cursor.execute("insert into Deptos values (?,?)",(dep,dire))#Recordar que es posicional los ?
print('Ingrese otro depto, o cero para salir');
dep=raw_input('Depto: ');
bbdd.commit()
bbdd.close()
def AgregaDatoPersonas(): #Agrega datos a la tabla personas
bbdd = dbapi.connect(arch)
cursor = bbdd.cursor()
print('Ingrese el nombre')
nom=raw_input('Nombre: ');
while (nom!='0'):
doc=raw_input('Doc: ');
departamento=raw_input('Departamento: ');
cursor.execute("insert into Personas values (?,?,?)",(nom,doc,departamento))#Recordar que es posicional los ?
print('Ingrese otro nombre, o cero para salir');
nom=raw_input('Nombre: ');
bbdd.commit()
bbdd.close()
def CrearTabla(): #Crea Tablas solo si no existen
bbdd = dbapi.connect(arch)
cursor = bbdd.cursor()
cursor.execute("""create table if not exists Personas (Id INTEGER UNIKE PRIMARY KEY, nombre text,dni text,departamento text)""")
cursor.execute("""create table if not exists Deptos (Id INTEGER UNIKE PRIMARY KEY, Depto text,Direccion text)""")
bbdd.commit()
bbdd.close()
def Modificar(): #Modifica datos de una persona buscada por nombre
nom2=raw_input("Ingrese el nombre a buscar: ")
nom=raw_input('Nombre modificado: ');
doc=raw_input('Doc modificado: ');
dep=raw_input('Departamento modificado: ');
bbdd = dbapi.connect(arch)
cursor = bbdd.cursor()
cursor.execute("UPDATE Personas SET nombre = '"+nom+"',dni = '"+doc+"',departamento = '"+dep+"' WHERE nombre = '"+nom2+"'")
nom2=raw_input("Desea guardar los cambios? responder con s o n ") #guarda o no los cambios recicle la variable jeje
if nom2=='s':
bbdd.commit()
else:
bbdd.rollback()
bbdd.close()
def ImprimirDatos(): #Imprime la tabla ordenada por departamento
if os.path.exists(arch):
bbdd = dbapi.connect(arch)
cursor = bbdd.cursor()
cursor.execute("select * from Personas order by departamento")
#print "Cantidad de elementos: "+str(len(cursor.fetchall())) #cantidad de elementos al usarlo vacia la tupla
print "Listado de Personas"
print " "
for tupla in cursor.fetchall():
print tupla #En caso de querer imprimir solo un dato usar tupla[0] un rango tupla[0:1]
print "------------------------------------------"
print "Nombre de Campos"
print " "
cursor.execute("select * from Personas")
for i in cursor.description:
print i[0]
#print cursor.description()
#for tupla in cursor.fetchall():
# print tupla
bbdd.close()
else:
print "No existe el archivo"
def ImprimirTablasJuntas():
bbdd = dbapi.connect(arch)
cursor = bbdd.cursor()
cursor.execute("select * from Personas,Deptos where Personas.departamento=Deptos.Depto")
for tupla in cursor.fetchall():
print tupla
bbdd.close()
def ImprimirTablasCantporDepto():
bbdd = dbapi.connect(arch)
cursor = bbdd.cursor()
#cursor.execute("select Personas.departamento,Deptos.Depto from Personas,Deptos Left Join Deptos USING(Depto)")
cursor.execute("select distinct(Personas.departamento),count(Personas.departamento) from Personas group by departamento")
for tupla in cursor.fetchall():
print tupla
bbdd.close()
def BorraDato(): #Borra una persona
bbdd = dbapi.connect(arch)
cursor = bbdd.cursor()
nom=raw_input('Nombre: ')
cursor.execute("DELETE from Personas WHERE nombre='"+nom+"'")
bbdd.commit()
bbdd.close()
if __name__=="__main__":
op='2'
while (op!='0'):
print('\n*****************************')
print(' Menu Principal ')
print('*****************************')
print('0-Salir')
print('1-Agregar Dato Personas')
print('2-AgregarDepto')
print('3-Modificar Dato')
print('4-Borra Dato')
print('5-Crear Tabla')
print('6-Imprimir Tablas Juntas')
print('7-Imprimir Tablas Cantidad por Depto')
print('8-Imprimir Datos')
print('*****************************')
op=raw_input('Opcion: ')
if (op=='1'):
AgregaDatoPersonas()
elif (op=='2'):
AgregaDatoDeptos()
elif (op=='3'):
Modificar()
elif (op=='4'):
BorraDato()
elif (op=='5'):
CrearTabla()
elif (op=='6'):
ImprimirTablasJuntas()
elif (op=='7'): #Usa el count
ImprimirTablasCantporDepto()
elif (op=='8'):
ImprimirDatos()
TUTORIAL Python para todos
escrito por Raúl González Duque. Se trata de un tutorial de Python adecuado para todos los niveles y que puedes descargar totalmente gratis.
'Python para todos' se distribuye bajo licencia Creative Commons Reconocimiento 2.5 España, lo que supone que puedes distribuirlo, modificarlo, traducirlo a otros idiomas, ... siempre que indiques el autor original'El libro cuenta con 160 páginas en las que se tratan los siguientes temas:
- Tipos básicos
- Control de flujo
- Funciones
- Orientación a objetos
- Programación funcional
- Excepciones
- Módulos y paquetes
- Entrada / Salida
- Expresiones regulares
- Sockets
- Interacción con webs
- Threads
- Serialización de objetos
- Bases de datos
- Documentación
- Pruebas
- Distribuir aplicaciones Python
Descargar el tutorial de Python 'Python para todos'
Puedes descargar el tutorial de Python 'Python para todos' en formato PDF (1,21 MB) haciendo clic sobre el siguiente enlace:
- Python para todos [PDF] (Launchpad)
martes, 2 de octubre de 2012
TUTORIAL DE PYTHON
¿Por qué Python? Python es un lenguaje que todo el mundo debería conocer. Su sintaxis
simple, clara y sencilla; el tipado dinámico, el gestor de memoria, la
gran cantidad de librerías disponibles y la potencia del lenguaje, entre
otros, hacen que desarrollar una aplicación en Python sea sencillo, muy
rápido y, lo que es más importante, divertido.
La sintaxis de Python es tan sencilla y cercana al lenguaje natural que
los programas elaborados en Python parecen pseudocódigo. Por este
motivo se trata además de uno de los mejores lenguajes para comenzar
a programar.
Python no es adecuado sin embargo para la programación de bajo
nivel o para aplicaciones en las que el rendimiento sea crítico.
Algunos casos de éxito en el uso de Python son Google, Yahoo, la
NASA, Industrias Light & Magic, y todas las distribuciones Linux, en
las que Python cada vez representa un tanto por ciento mayor de los
programas disponibles.Puedes descargar el tutorial de Python 'Python para todos' en formato PDF (1,21 MB) haciendo clic sobre el siguiente enlace: