Agenda en python con Sqlite3 (Version 0.1)

Agenda en Python
Agenda en Python

Dejo el código y el archivo para descargar de la Agenda (Versión 0.1) hecha con python y Sqlite3. Se hizo en un sistema Linux (Ubuntu). También lo probé en Windows 7 y funcionó, pero tendría que hacerle algunas modificaciones que realizaré en otras versiones.

Puedes ver estas entradas que también pueden ayudarte en caso de no entender el código:

Python y Sqlite3 como Base de Datos
Limpiar pantalla en python

Archivo para descargar y probar --> Agenda.py

GitHub --> https://github.com/DiegoCaraballo/Agenda-en-python-con-Sqlite3.git

Tiene un montón de cosas para corregir y también para agregar, por eso quiero decirles que con sus críticas, sugerencias o cualquier tipo de comentario contribuirán para las próximas versiones, Gracias....

La primera ves que ejecutes el archivo, este creará una base de datos llamadas "agenda.db" en el directorio donde ejecutes el archivo.

Codigo:

#! usr/bin/python
# -*- coding: utf-8 -*-

#Agenda con base de datos Sqlite3
#www.pythondiario.com
#Autor: Diego Caraballo

#Modulos importados
import sqlite3
import time 
import os

#Conexion con Base de Datos Sqlite3
con = sqlite3.connect("agenda.db")
cursor = con.cursor()
#Comprueba si la tabla existe, en caso de no existir la crea
cursor.execute("""CREATE TABLE IF NOT EXISTS datos (nombre TEXT, apellido TEXT, telefono TEXT, correo TEXT)""")

cursor.close()

#Declaracion de las funciones

def limpiar():

 """Limpia la pantalla"""

 if os.name == "posix":
  os.system("clear")
 elif os.name == ("ce", "nt", "dos"):
  os.system("cls")

def agregar():
 
 """Agrega un nuevo contacto a la Agenda"""

 print "Agregar contacto"
 print "----------------"
 print ""

 con = sqlite3.connect("agenda.db")
 cursor = con.cursor()

 nombre = raw_input("Nombre: ")
 apellido = raw_input("Apellido: ")
 telefono = raw_input("Telefono: ")
 correo = raw_input("Correo: ")

 cursor.execute("insert into datos (nombre, apellido, telefono, correo) values ('%s','%s','%s','%s')"%(nombre,apellido,telefono,correo))

 con.commit()

 print "Los datos fueron agregados correctamente"

 cursor.close()
 time.sleep(2)
 main()

def ver():
 
 """Devuelve todos los contactos de la agenda"""

 print "Lista de contactos"
 print "------------------"
 print ""

 con = sqlite3.connect("agenda.db")
 cursor = con.cursor()

 cursor.execute("SELECT * FROM datos")
 resultado = cursor.fetchall()

 for i in resultado:
  print "%s %s %s %s" % (i[0],i[1],i[2],i[3])

 cursor.close()

 print ""
 raw_input("Presione una tecla para continuar...")

 main()

def buscar():
 
 """Busca un contacto en la agenda y lo lista"""

 print "Buscar contacto"
 print "---------------"
 print ""

 con = sqlite3.connect("agenda.db")
 cursor = con.cursor()

 buscar = raw_input("Nombre a buscar: ")

 cursor.execute ("SELECT * FROM datos WHERE nombre = '%s'" %(buscar))

 x = cursor.fetchall()

 print ""

 for i in x:
   print "Nombre:", i[0]
  print "Apellido:", i[1]
  print "Telefono:", i[2]
  print "Correo:", i[3]
  print ""

 cursor.close()

 print ""
 raw_input("Presione una tecla para continuar...")

 main()

def eliminar():
 
 """Elimina un contacto de la Agenda"""

 print "Eliminar contacto"
 print "-----------------"
 print ""

 con = sqlite3.connect("agenda.db")
 cursor = con.cursor()

 eliminar = raw_input ("Nombre de contacto a eliminar: ")

 cursor.execute("DELETE FROM datos WHERE nombre='%s'"%(eliminar))

 con.commit()

 cursor.close()

 print "Contacto eliminao correctamente..."
 raw_input()
 main()

def main():

 """Funcion principal de la Agenda"""

 limpiar()

 print "-----------------------------------------"
 print "Esta es la agenda de www.pythondiario.com"
 print "-----------------------------------------"
 print "                              Version 0.1"
 print """
 [1] Ingresar Contacto
 [2] Listar Contactos
 [3] Buscar Contacto
 [4] Eliminar Contacto
 [0] Salir
 """

 opcion = raw_input("Ingresa una opción -> ")

 if opcion != "1" and opcion != "2" and opcion != "3" and opcion != "4" and opcion != "5" and opcion != "0":
  print "Opcion incorrecta"
  raw_input()
  main()
 elif opcion == "1":
  limpiar()
  agregar()
 elif opcion == "2":
  limpiar()
  ver()
 elif opcion == "3":
  limpiar()
  buscar()
 elif opcion == "4":
  limpiar()
  eliminar()
 elif  opcion == "0":
  print ""
  print "Bye..."
  print "No te olvides de visitar www.pythondiario.com :)"
  print ""
  print ""
  time.sleep(3)
  exit()
 

main()


Saludos y espero les sea de utilidad...

  1. Unknown dice:

    Muchas gracias por el aporte. Por lo que veo se trata de un a/b/m y consultas muy interesante a la hora de trabajar con bases de datos. Lo voy a probar y a jugar un poco con el codigo.

    1. PythonDiario dice:

      Gracias Andres por visitar el blog. Espero te sea de muhca ayuda. Saludos

  2. Unknown dice:

    Buenisimo, gracias por compartir. Estoy empezando con python y tu blog me resulta muy util. La versión 0.2 de ésta agenda podría tener una interface gráfica con pyqt o tk, yo lo voy a intentar cuando pueda.

    1. PythonDiario dice:

      Hola Martin, Gracias por darte una vuelta en el blog. Me alegro que los artículos te sean de ayuda. La próxima versión será una aplicación gráfica por supuesto. Saludos

  3. Lenri dice:

    me puede mandar ese programa el link no funciona , y gracias de ante mano

    1. PythonDiario dice:

      Hola Lenri, ya corregí el link (lo subí a Drive). Prueba ahora y cualquier cosa me comentas. Saludos y gracias por visitar el blog 😉

    2. Lenri dice:

      Muchisima gracias me sirvio mucho , sigue asi con este blog 😉

    3. PythonDiario dice:

      Me alegro te sea de ayuda Lenri ;). Así seguiremos, Saludos

  4. Miguel Bautista dice:

    Gracias por poner el código, estoy intentando hacer una app utilizando sqlite3 y tu código creo que me será útil.

    1. PythonDiario dice:

      Me alegro Miguel te pueda ser de ayuda. Suerte!!!

  5. Anónimo dice:

    Excelente como siempre!!!

    1. PythonDiario dice:

      Muchas gracias 😉

  6. Frater Athanatos - Eques Ab Immortalitas dice:

    Hola Diego....hay una nueva version de la agenda ? y en su defecto en Windows que modificaciones le hago para que funcione..gracias

  7. dflores2017 dice:

    Filete diego, me sera de mucha ayuda, tengo la misma duda de el comentario anterior... hay alguna actualizacion?

  8. Marii Chan95 dice:

    Y como sería para agregarle un apartado para modificar los datos? Espero me puedas ayudar !

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Te has suscrito correctamente al boletín

Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.