lunes, 26 de febrero de 2018

35 Python. Agenda de contactos parte 6 Buscar Datos

Preparamos nuestra aplicacion para realizar busquedas en Sqlite y mostrarla en caso de que exista.



Agenda


#AGENDA PYTHON
#CON SQLITE
#IMPORTA MODULO
from tkinter import *
from BDatos import *
from tkinter import messagebox
#VARIABLES
listado=[]
ANCHO=560
ALTO=540
POSX=400
POSY=400
anchoAlto=(str(ANCHO)+"x"+str(ALTO))
posicionX="+"+str(POSX)
posicionY="+"+str(POSY)
colorVentana="blue"
colorFondo="blue"
colorLetra="white"
#funcion pruebas
def mostrarMensaje():
    print("Pruebas")
#FUNCIONES
def mensaje(titulo,texto):
    messagebox.showinfo(titulo,texto)
def listar():
    if(len(listado)>0):
        #borra lista
        listado.clear()
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("SELECT id,nombre,apellidos,telefono,email from agenda")
    for i in consulta:
            id=(i[0])
            nombre=(i[1])
            apellidos=(i[2])
            telefono=(i[3])
            email=(i[4])
            listado.append(i)
            listado.sort()
    conexion.close()
    try:
        textLista.delete(1.0,END)
    except:
        mensaje("Listado","error en listado")
    textLista.insert(INSERT,"id\tNombre\t\tApellidos\t\tTelefono\n")
    for elemento in listado:
        id=elemento[0]
        nombre=elemento[1]
        apellidos=elemento[2]
        telefono=elemento[3]
        textLista.insert(INSERT,id)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,nombre)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,apellidos)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,telefono)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\n")
       
       
               
def limpiar():
    ID.set("")
    nombre.set("")
    apellidos.set("")
    telefono.set("")
    email.set("")
def guardar():
    no=nombre.get()
    ap=apellidos.get()
    tf=telefono.get()
    em=email.get()
    if((no=="")or(ap=="")):
        mensaje("Guardar","Faltan datos")
    else:
        limpiar()
        creaTabla()
        inserta(no,ap,tf,em)
        mensaje("Guardar","Datos guardados")
    listar()
def modificar():
    id=ID.get()
    no=nombre.get()
    ap=apellidos.get()
    tf=telefono.get()
    em=email.get()
    if((no=="")or(ap=="")or(id=="")):
        mensaje("Modificar","Faltan datos")
    else:
        try:
            limpiar()
            modifica(id,no,ap,tf,em)
            mensaje("Modificar","Contacto modificado")
            listar()
        except:
            mensaje("Modificar","Error al modificar")
def borrar():
    try:
        id=ID.get()   
        if(id==""):
            mensaje("Borrar","Debes insertar el codigo")
        else:
            borra(id)
            limpiar()
            listar()
            mensaje("Borrar","Mensaje borrado")
    except:
        mensaje("Error","Error al borrar, inserta codigo")
def buscar():
    id=ID.get()
    if (id==""):
        mensaje("Buscar","Inserta identificador")
    else:
        tupla=busca(id)
        nombre.set(tupla[0])
        apellidos.set(tupla[1])
        telefono.set(tupla[2])
        email.set(tupla[3])
        mensaje("Buscar","Contacto encontrado")
#VENTANA
ventana=Tk()
ventana.config(bg=colorVentana)
ventana.geometry(anchoAlto+posicionX+posicionY)
ventana.title("Agenda")
#Variables cajas
ID=IntVar()
nombre=StringVar()
apellidos=StringVar()
telefono=StringVar()
email=StringVar()
#Widgets
etiquetaID=Label(ventana,text="ID:").place(x=50,y=50)
cajaID=Entry(ventana,textvariable=ID).place(x=130,y=50)
etiquetaNombre=Label(ventana,text="Nombre:").place(x=50,y=90)
cajaNombre=Entry(ventana,textvariable=nombre).place(x=130,y=90)
etiquetaApellidos=Label(ventana,text="Apellidos:").place(x=50,y=130)
cajaApellidos=Entry(ventana,textvariable=apellidos).place(x=130,y=130)
etiquetaTelefono=Label(ventana,text="Telefono:").place(x=50,y=170)
cajaTelefono=Entry(ventana,textvariable=telefono).place(x=130,y=170)
etiquetaEmail=Label(ventana,text="Email:").place(x=50,y=210)
cajaEmail=Entry(ventana,textvariable=email).place(x=130,y=210)
textLista=Text(ventana)
textLista.place(x=50,y=240,width=400,height=200)
#Botones
botonAñadir=Button(ventana,text="Añadir",command=guardar).place(x=150,y=500)
botonBorrar=Button(ventana,text="Borrar",command=borrar).place(x=200,y=500)
botonBuscar=Button(ventana,text="Buscar",command=buscar).place(x=250,y=500)
botonModificar=Button(ventana,text="Modificar",command=modificar).place(x=300,y=500)
listar()
ventana.mainloop()
BDatos


#SQLITE
import sqlite3
from tkinter import messagebox
#CREA TABLA
def creaTabla():
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    sql="""CREATE TABLE IF NOT EXISTS agenda(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
 nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(20) NOT NULL, telefono VARCHAR(14) NOT NULL,
 email VARCHAR(20) NOT NULL)"""
    if(consulta.execute(sql)):
        print("Tabla creada")
    else:
        print("No se pudo crear la tabla")
    conexion.close()
#INSERTAR DATOS
def inserta(nombre,apellidos,telefono,email):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    datos=(nombre,apellidos,telefono,email)
    sql="""INSERT INTO agenda(nombre,apellidos,telefono,email) VALUES (?,?,?,?)"""
    if(consulta.execute(sql,datos)):
         print("Datos guardados")
    else:
        print("No se pudo guardar el dato")
    conexion.commit()
    conexion.close()
def modifica(id,nombre,apellidos,telefono,email):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("""UPDATE agenda SET nombre = ?,apellidos = ?,
telefono = ?,email = ? WHERE id= ?""",(nombre,apellidos,telefono,email, str(id)))
    consulta.close()
    conexion.commit()
    conexion.close()
#BORRAR DATOS
def borra(id):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("DELETE from agenda WHERE id="+str(id))
    consulta.close()
    conexion.commit()
    conexion.close()
#BUSCAR DATOS
def busca(id):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    try:
        consulta.execute("SELECT * FROM agenda WHERE id="+str(id))
        for i in consulta:
            nombre=i[1]
            apellidos=i[2]
            telefono=i[3]
            email=i[4]
            return (nombre,apellidos,telefono,email)
        conexion.commit()
        conexion.close()
    except:
        messagebox.shorinfo("Buscar","Error al buscar")


   

domingo, 25 de febrero de 2018

34 Python. Agenda de contactos parte 5 Borrar Datos

Creamos la funcion de borrado de registros.



Agenda
#AGENDA PYTHON
#CON SQLITE
#IMPORTA MODULO
from tkinter import *
from BDatos import *
from tkinter import messagebox
#VARIABLES
listado=[]
ANCHO=560
ALTO=540
POSX=400
POSY=400
anchoAlto=(str(ANCHO)+"x"+str(ALTO))
posicionX="+"+str(POSX)
posicionY="+"+str(POSY)
colorVentana="blue"
colorFondo="blue"
colorLetra="white"
#funcion pruebas
def mostrarMensaje():
    print("Pruebas")
#FUNCIONES
def mensaje(titulo,texto):
    messagebox.showinfo(titulo,texto)
def listar():
    if(len(listado)>0):
        #borra lista
        listado.clear()
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("SELECT id,nombre,apellidos,telefono,email from agenda")
    for i in consulta:
            id=(i[0])
            nombre=(i[1])
            apellidos=(i[2])
            telefono=(i[3])
            email=(i[4])
            listado.append(i)
            listado.sort()
    conexion.close()
    try:
        textLista.delete(1.0,END)
    except:
        mensaje("Listado","error en listado")
    textLista.insert(INSERT,"id\tNombre\t\tApellidos\t\tTelefono\n")
    for elemento in listado:
        id=elemento[0]
        nombre=elemento[1]
        apellidos=elemento[2]
        telefono=elemento[3]
        textLista.insert(INSERT,id)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,nombre)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,apellidos)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,telefono)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\n")
       
       
               
def limpiar():
    ID.set("")
    nombre.set("")
    apellidos.set("")
    telefono.set("")
    email.set("")
def guardar():
    no=nombre.get()
    ap=apellidos.get()
    tf=telefono.get()
    em=email.get()
    if((no=="")or(ap=="")):
        mensaje("Guardar","Faltan datos")
    else:
        limpiar()
        creaTabla()
        inserta(no,ap,tf,em)
        mensaje("Guardar","Datos guardados")
    listar()
def modificar():
    id=ID.get()
    no=nombre.get()
    ap=apellidos.get()
    tf=telefono.get()
    em=email.get()
    if((no=="")or(ap=="")or(id=="")):
        mensaje("Modificar","Faltan datos")
    else:
        try:
            limpiar()
            modifica(id,no,ap,tf,em)
            mensaje("Modificar","Contacto modificado")
            listar()
        except:
            mensaje("Modificar","Error al modificar")
def borrar():
    try:
        id=ID.get()   
        if(id==""):
            mensaje("Borrar","Debes insertar el codigo")
        else:
            borra(id)
            limpiar()
            listar()
            mensaje("Borrar","Mensaje borrado")
    except:
        mensaje("Error","Error al borrar, inserta codigo")
#VENTANA
ventana=Tk()
ventana.config(bg=colorVentana)
ventana.geometry(anchoAlto+posicionX+posicionY)
ventana.title("Agenda")
#Variables cajas
ID=IntVar()
nombre=StringVar()
apellidos=StringVar()
telefono=StringVar()
email=StringVar()
#Widgets
etiquetaID=Label(ventana,text="ID:").place(x=50,y=50)
cajaID=Entry(ventana,textvariable=ID).place(x=130,y=50)
etiquetaNombre=Label(ventana,text="Nombre:").place(x=50,y=90)
cajaNombre=Entry(ventana,textvariable=nombre).place(x=130,y=90)
etiquetaApellidos=Label(ventana,text="Apellidos:").place(x=50,y=130)
cajaApellidos=Entry(ventana,textvariable=apellidos).place(x=130,y=130)
etiquetaTelefono=Label(ventana,text="Telefono:").place(x=50,y=170)
cajaTelefono=Entry(ventana,textvariable=telefono).place(x=130,y=170)
etiquetaEmail=Label(ventana,text="Email:").place(x=50,y=210)
cajaEmail=Entry(ventana,textvariable=email).place(x=130,y=210)
textLista=Text(ventana)
textLista.place(x=50,y=240,width=400,height=200)
#Botones
botonAñadir=Button(ventana,text="Añadir",command=guardar).place(x=150,y=500)
botonBorrar=Button(ventana,text="Borrar",command=borrar).place(x=200,y=500)
botonBuscar=Button(ventana,text="Buscar",command=mostrarMensaje).place(x=250,y=500)
botonModificar=Button(ventana,text="Modificar",command=modificar).place(x=300,y=500)
listar()
ventana.mainloop()

BDatos
#SQLITE
import sqlite3
#CREA TABLA
def creaTabla():
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    sql="""CREATE TABLE IF NOT EXISTS agenda(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
 nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(20) NOT NULL, telefono VARCHAR(14) NOT NULL,
 email VARCHAR(20) NOT NULL)"""
    if(consulta.execute(sql)):
        print("Tabla creada")
    else:
        print("No se pudo crear la tabla")
    conexion.close()
#INSERTAR DATOS
def inserta(nombre,apellidos,telefono,email):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    datos=(nombre,apellidos,telefono,email)
    sql="""INSERT INTO agenda(nombre,apellidos,telefono,email) VALUES (?,?,?,?)"""
    if(consulta.execute(sql,datos)):
         print("Datos guardados")
    else:
        print("No se pudo guardar el dato")
    conexion.commit()
    conexion.close()
def modifica(id,nombre,apellidos,telefono,email):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("""UPDATE agenda SET nombre = ?,apellidos = ?,
telefono = ?,email = ? WHERE id= ?""",(nombre,apellidos,telefono,email, str(id)))
    consulta.close()
    conexion.commit()
    conexion.close()
#BORRAR DATOS
def borra(id):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("DELETE from agenda WHERE id="+str(id))
    consulta.close()
    conexion.commit()
    conexion.close()

sábado, 24 de febrero de 2018

33 Python. Agenda de contactos parte 4 Modificar Datos

Añadimos funcion para modificar los registros de nuestra base de datos.




BDatos
#SQLITE
import sqlite3
#CREA TABLA
def creaTabla():
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    sql="""CREATE TABLE IF NOT EXISTS agenda(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
 nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(20) NOT NULL, telefono VARCHAR(14) NOT NULL,
 email VARCHAR(20) NOT NULL)"""
    if(consulta.execute(sql)):
        print("Tabla creada")
    else:
        print("No se pudo crear la tabla")
    conexion.close()
#INSERTAR DATOS
def inserta(nombre,apellidos,telefono,email):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    datos=(nombre,apellidos,telefono,email)
    sql="""INSERT INTO agenda(nombre,apellidos,telefono,email) VALUES (?,?,?,?)"""
    if(consulta.execute(sql,datos)):
         print("Datos guardados")
    else:
        print("No se pudo guardar el dato")
    conexion.commit()
    conexion.close()
def modifica(id,nombre,apellidos,telefono,email):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("""UPDATE agenda SET nombre = ?,apellidos = ?,
telefono = ?,email = ? WHERE id= ?""",(nombre,apellidos,telefono,email, str(id)))
    consulta.close()
    conexion.commit()
    conexion.close()

Agenda
#AGENDA PYTHON
#CON SQLITE
#IMPORTA MODULO
from tkinter import *
from BDatos import *
from tkinter import messagebox
#VARIABLES
listado=[]
ANCHO=560
ALTO=540
POSX=400
POSY=400
anchoAlto=(str(ANCHO)+"x"+str(ALTO))
posicionX="+"+str(POSX)
posicionY="+"+str(POSY)
colorVentana="blue"
colorFondo="blue"
colorLetra="white"
#funcion pruebas
def mostrarMensaje():
    print("Pruebas")
#FUNCIONES
def mensaje(titulo,texto):
    messagebox.showinfo(titulo,texto)
def listar():
    if(len(listado)>0):
        #borra lista
        listado.clear()
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("SELECT id,nombre,apellidos,telefono,email from agenda")
    for i in consulta:
            id=(i[0])
            nombre=(i[1])
            apellidos=(i[2])
            telefono=(i[3])
            email=(i[4])
            listado.append(i)
            listado.sort()
    conexion.close()
    try:
        textLista.delete(1.0,END)
    except:
        mensaje("Listado","error en listado")
    textLista.insert(INSERT,"id\tNombre\t\tApellidos\t\tTelefono\n")
    for elemento in listado:
        id=elemento[0]
        nombre=elemento[1]
        apellidos=elemento[2]
        telefono=elemento[3]
        textLista.insert(INSERT,id)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,nombre)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,apellidos)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,telefono)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\n")
       
       
               
def limpiar():
    ID.set("")
    nombre.set("")
    apellidos.set("")
    telefono.set("")
    email.set("")
def guardar():
    no=nombre.get()
    ap=apellidos.get()
    tf=telefono.get()
    em=email.get()
    if((no=="")or(ap=="")):
        mensaje("Guardar","Faltan datos")
    else:
        limpiar()
        creaTabla()
        inserta(no,ap,tf,em)
        mensaje("Guardar","Datos guardados")
    listar()
def modificar():
    id=ID.get()
    no=nombre.get()
    ap=apellidos.get()
    tf=telefono.get()
    em=email.get()
    if((no=="")or(ap=="")or(id=="")):
        mensaje("Modificar","Faltan datos")
    else:
        try:
            limpiar()
            modifica(id,no,ap,tf,em)
            mensaje("Modificar","Contacto modificado")
            listar()
        except:
            mensaje("Modificar","Error al modificar")
#VENTANA
ventana=Tk()
ventana.config(bg=colorVentana)
ventana.geometry(anchoAlto+posicionX+posicionY)
ventana.title("Agenda")
#Variables cajas
ID=IntVar()
nombre=StringVar()
apellidos=StringVar()
telefono=StringVar()
email=StringVar()
#Widgets
etiquetaID=Label(ventana,text="ID:").place(x=50,y=50)
cajaID=Entry(ventana,textvariable=ID).place(x=130,y=50)
etiquetaNombre=Label(ventana,text="Nombre:").place(x=50,y=90)
cajaNombre=Entry(ventana,textvariable=nombre).place(x=130,y=90)
etiquetaApellidos=Label(ventana,text="Apellidos:").place(x=50,y=130)
cajaApellidos=Entry(ventana,textvariable=apellidos).place(x=130,y=130)
etiquetaTelefono=Label(ventana,text="Telefono:").place(x=50,y=170)
cajaTelefono=Entry(ventana,textvariable=telefono).place(x=130,y=170)
etiquetaEmail=Label(ventana,text="Email:").place(x=50,y=210)
cajaEmail=Entry(ventana,textvariable=email).place(x=130,y=210)
textLista=Text(ventana)
textLista.place(x=50,y=240,width=400,height=200)
#Botones
botonAñadir=Button(ventana,text="Añadir",command=guardar).place(x=150,y=500)
botonBorrar=Button(ventana,text="Borrar",command=mostrarMensaje).place(x=200,y=500)
botonBuscar=Button(ventana,text="Buscar",command=mostrarMensaje).place(x=250,y=500)
botonModificar=Button(ventana,text="Modificar",command=modificar).place(x=300,y=500)

ventana.mainloop()




viernes, 23 de febrero de 2018

32 Python. Agenda de contactos parte 3

En esta entrada preparo nuestra aplicacion para listar los registros grabados en la base de datos Sqlite, tambien creamos una funcion para mostrar mensajes.



Agenda

#AGENDA PYTHON
#CON SQLITE
#IMPORTA MODULO
from tkinter import *
from BDatos import *
from tkinter import messagebox
#VARIABLES
listado=[]
ANCHO=560
ALTO=540
POSX=400
POSY=400
anchoAlto=(str(ANCHO)+"x"+str(ALTO))
posicionX="+"+str(POSX)
posicionY="+"+str(POSY)
colorVentana="blue"
colorFondo="blue"
colorLetra="white"
#funcion pruebas
def mostrarMensaje():
    print("Pruebas")
#FUNCIONES
def mensaje(titulo,texto):
    messagebox.showinfo(titulo,texto)
def listar():
    if(len(listado)>0):
        #borra lista
        listado.clear()
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    consulta.execute("SELECT id,nombre,apellidos,telefono,email from agenda")
    for i in consulta:
            id=(i[0])
            nombre=(i[1])
            apellidos=(i[2])
            telefono=(i[3])
            email=(i[4])
            listado.append(i)
            listado.sort()
    conexion.close()
    try:
        textLista.delete(1.0,END)
    except:
        mensaje("Listado","error en listado")
    textLista.insert(INSERT,"id\tNombre\t\tApellidos\t\tTelefono\n")
    for elemento in listado:
        id=elemento[0]
        nombre=elemento[1]
        apellidos=elemento[2]
        telefono=elemento[3]
        textLista.insert(INSERT,id)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,nombre)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,apellidos)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,telefono)
        textLista.insert(INSERT,"\t")
        textLista.insert(INSERT,"\n")
       
       
               
def limpiar():
    ID.set("")
    nombre.set("")
    apellidos.set("")
    telefono.set("")
    email.set("")
def guardar():
    no=nombre.get()
    ap=apellidos.get()
    tf=telefono.get()
    em=email.get()
    if((no=="")or(ap=="")):
        mensaje("Guardar","Faltan datos")
    else:
        limpiar()
        creaTabla()
        inserta(no,ap,tf,em)
        mensaje("Guardar","Datos guardados")
    listar()
#VENTANA
ventana=Tk()
ventana.config(bg=colorVentana)
ventana.geometry(anchoAlto+posicionX+posicionY)
ventana.title("Agenda")
#Variables cajas
ID=IntVar()
nombre=StringVar()
apellidos=StringVar()
telefono=StringVar()
email=StringVar()
#Widgets
etiquetaID=Label(ventana,text="ID:").place(x=50,y=50)
cajaID=Entry(ventana,textvariable=ID).place(x=130,y=50)
etiquetaNombre=Label(ventana,text="Nombre:").place(x=50,y=90)
cajaNombre=Entry(ventana,textvariable=nombre).place(x=130,y=90)
etiquetaApellidos=Label(ventana,text="Apellidos:").place(x=50,y=130)
cajaApellidos=Entry(ventana,textvariable=apellidos).place(x=130,y=130)
etiquetaTelefono=Label(ventana,text="Telefono:").place(x=50,y=170)
cajaTelefono=Entry(ventana,textvariable=telefono).place(x=130,y=170)
etiquetaEmail=Label(ventana,text="Email:").place(x=50,y=210)
cajaEmail=Entry(ventana,textvariable=email).place(x=130,y=210)
textLista=Text(ventana)
textLista.place(x=50,y=240,width=400,height=200)
#Botones
botonAñadir=Button(ventana,text="Añadir",command=guardar).place(x=150,y=500)
botonBorrar=Button(ventana,text="Borrar",command=mostrarMensaje).place(x=200,y=500)
botonBuscar=Button(ventana,text="Buscar",command=mostrarMensaje).place(x=250,y=500)
botonModificar=Button(ventana,text="Modificar",command=mostrarMensaje).place(x=300,y=500)

ventana.mainloop()

BDdatos

#SQLITE
import sqlite3
#CREA TABLA
def creaTabla():
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    sql="""CREATE TABLE IF NOT EXISTS agenda(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
 nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(20) NOT NULL, telefono VARCHAR(14) NOT NULL,
 email VARCHAR(20) NOT NULL)"""
    if(consulta.execute(sql)):
        print("Tabla creada")
    else:
        print("No se pudo crear la tabla")
    conexion.close()
#INSERTAR DATOS
def inserta(nombre,apellidos,telefono,email):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    datos=(nombre,apellidos,telefono,email)
    sql="""INSERT INTO agenda(nombre,apellidos,telefono,email) VALUES (?,?,?,?)"""
    if(consulta.execute(sql,datos)):
         print("Datos guardados")
    else:
        print("No se pudo guardar el dato")
    conexion.commit()
    conexion.close()

jueves, 22 de febrero de 2018

31 Python. Agenda de contactos parte 2

Como veras, en esta entrada, creamos el modulo que ejecutara las funciones necesarias para el manejo de la base de datos Sqlite (creacion, insercion, modificacion, borrado y busqueda).
Para ello creamos un nuevo archivo (BDatos).



El codigo resultante de los 2 archivos es el siguiente:

BDatos
#SQLITE
import sqlite3
#CREA TABLA
def creaTabla():
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    sql="""CREATE TABLE IF NOT EXISTS agenda(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
 nombre VARCHAR(20) NOT NULL, apellidos VARCHAR(20) NOT NULL, telefono VARCHAR(14) NOT NULL,
 email VARCHAR(20) NOT NULL)"""
    if(consulta.execute(sql)):
        print("Tabla creada")
    else:
        print("No se pudo crear la tabla")
    conexion.close()
#INSERTAR DATOS
def inserta(nombre,apellidos,telefono,email):
    conexion=sqlite3.connect("agenda.db")
    consulta=conexion.cursor()
    datos=(nombre,apellidos,telefono,email)
    sql="""INSERT INTO agenda(nombre,apellidos,telefono,email) VALUES (?,?,?,?)"""
    if(consulta.execute(sql,datos)):
         print("Datos guardados")
    else:
        print("No se pudo guardar el dato")
    conexion.commit()
    conexion.close()

Agenda

 #AGENDA PYTHON
#CON SQLITE
#IMPORTA MODULO
from tkinter import *
from BDatos import *
from tkinter import messagebox
#VARIABLES
ANCHO=560
ALTO=540
POSX=400
POSY=400
anchoAlto=(str(ANCHO)+"x"+str(ALTO))
posicionX="+"+str(POSX)
posicionY="+"+str(POSY)
colorVentana="blue"
colorFondo="blue"
colorLetra="white"
#funcion pruebas
def mostrarMensaje():
    print("Pruebas")
#FUNCIONES
def limpiar():
    ID.set("")
    nombre.set("")
    apellidos.set("")
    telefono.set("")
    email.set("")
def guardar():
    no=nombre.get()
    ap=apellidos.get()
    tf=telefono.get()
    em=email.get()
    if((no=="")or(ap=="")):
        print("Faltan datos")
    else:
        limpiar()
        creaTabla()
        inserta(no,ap,tf,em)
        print("Datos guardados")
#VENTANA
ventana=Tk()
ventana.config(bg=colorVentana)
ventana.geometry(anchoAlto+posicionX+posicionY)
ventana.title("Agenda")
#Variables cajas
ID=IntVar()
nombre=StringVar()
apellidos=StringVar()
telefono=StringVar()
email=StringVar()
#Widgets
etiquetaID=Label(ventana,text="ID:").place(x=50,y=50)
cajaID=Entry(ventana,textvariable=ID).place(x=130,y=50)
etiquetaNombre=Label(ventana,text="Nombre:").place(x=50,y=90)
cajaNombre=Entry(ventana,textvariable=nombre).place(x=130,y=90)
etiquetaApellidos=Label(ventana,text="Apellidos:").place(x=50,y=130)
cajaApellidos=Entry(ventana,textvariable=apellidos).place(x=130,y=130)
etiquetaTelefono=Label(ventana,text="Telefono:").place(x=50,y=170)
cajaTelefono=Entry(ventana,textvariable=telefono).place(x=130,y=170)
etiquetaEmail=Label(ventana,text="Email:").place(x=50,y=210)
cajaEmail=Entry(ventana,textvariable=email).place(x=130,y=210)
textLista=Text(ventana)
textLista.place(x=50,y=240,width=400,height=200)
#Botones
botonAñadir=Button(ventana,text="Añadir",command=guardar).place(x=150,y=500)
botonBorrar=Button(ventana,text="Borrar",command=mostrarMensaje).place(x=200,y=500)
botonBuscar=Button(ventana,text="Buscar",command=mostrarMensaje).place(x=250,y=500)
botonModificar=Button(ventana,text="Modificar",command=mostrarMensaje).place(x=300,y=500)

ventana.mainloop()

martes, 20 de febrero de 2018