Google+ Seguidores

sábado, 1 de noviembre de 2014

Agenda en python con Sqlite3 (Version 0.1)

    12

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...

12 comentarios:
Write comentarios
  1. 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.

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

      Eliminar
  2. 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.

    ResponderEliminar
    Respuestas
    1. 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

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

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

      Eliminar
    2. Muchisima gracias me sirvio mucho , sigue asi con este blog ;)

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

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

    ResponderEliminar
    Respuestas
    1. Me alegro Miguel te pueda ser de ayuda. Suerte!!!

      Eliminar
  5. Excelente como siempre!!!

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

© 2014 Mi diario Python. Designed by Bloggertheme9 | Distributed By Gooyaabi Templates
Powered by Blogger.