miércoles, 9 de julio de 2014

OMSICLIENT PYTHON CON MYSQL

Queridos lectores hoy les traigo en lo que  estube trabajando durante 3 semanas, en tiempos libres me puse a jugar un rato con python y mysql
trata sobre  llevar el control de clientes, orientado mas a servicios informaticos  si tienen un negocio asi aprobechenlo descarguen el codigo  y la bd  y por cualquier dudo estamos asus ordenes. 

CODIGO DE OMSICLIENT
#! /usr/bin/env python
# -*- coding: utf8 -*-
#*** este codigo podra distribuirse y modificarse  siempre y cuando respecte
 #la autoria.
import time
import os
import sys
import string
import MySQLdb

#**********************************************************OMSI***********************************************************
def conexionBd():

    HOST = "localhost"
    USER = "aqui va usuario de bd"
    PASSWD = "aqui va contraseña de bd"
    BD = "Nombre de la BD"

    try:
        conectar = MySQLdb.connect(HOST, USER, PASSWD)
        conectar.select_db(BD)

        except MySQLdb.Error, e:
            print "Error: base de datos no encontrado...",e
        menu = raw_input()
        os.system("clear")
        opcUsuario()       

    return conectar

#**********************************************************OMSI***********************************************************
def funRegistrar(conectar):

    print "\n\nIntroduzca los datos:\n"
    nombre = raw_input("Nombre: ")
    apellido = raw_input("Apellido:")
    calle = raw_input("Calle:")
    colonia = raw_input("Colonia:")
    pueblo = raw_input("Pueblo:")
    email = raw_input("Email:")
    telefono =  raw_input("Telefono:")
    cantidad_pc = raw_input("Cantidad PC:")
    marca =  raw_input("Marca:")
    modelo = raw_input("Modelo:")
    color = raw_input("Color:")
    fallos = raw_input("Fallos:")
   
    cursor = conectar.cursor()    

    sql = "INSERT INTO contactos (nombre,apellido,calle,pueblo,email,telefono,cantidad_pc,marca,modelo,color,fallos,colonia) VALUES ('"+nombre+"','"+apellido+"','"+calle+"','"+pueblo+"','"+email+"','"+telefono+"','"+cantidad_pc+"','"+marca+"','"+modelo+"','"+color+"','"+fallos+"','"+colonia+"')"
    try:
            cursor.execute(sql)
        conectar.commit()

        except MySQLdb.Error, e:
            print "Erro: " + sql
            print e

    print "Datos guardados correctamente."
    conectar.close()
    menu = raw_input()
    os.system("clear")
    opcUsuario()

#**********************************************************OMSI***********************************************************

def funConsultar(conectar):

    nombre = raw_input("\nIntroduzca un nombre para la búsqueda: ")
    nombre = (nombre.upper())
    cursor = conectar.cursor()
     sql="SELECT * FROM contactos WHERE nombre='"+nombre+"'"
     resultados = 0

       try:
            cursor.execute(sql)
        resultado = cursor.fetchall()
        for datos in resultado:
            ide = datos[0]
                    nombre = datos[1]
            apellido = datos[2]
            telefono = datos[6]
            cantidad_pc = datos[7]
            marca = datos[8]
            modelo = datos[9]
            fallos = datos[11]
            fecha = datos[13]

            resultados= int(resultados)
            resultados = resultados + 1
            print"\n----------------------------\n"
            print " ID: %s\n Nombre: %s %s\n Telefono: %s\n cantidad_pc: %s\n Marca: %s\n Modelo: %s\n Fallos: %s\n fecha Registro: %s"%(ide, nombre, apellido, telefono, cantidad_pc, marca, modelo, fallos, fecha)
        conectar.commit()

        except MySQLdb.Error, e:
            print "Erro: " + sql
            print e

    print "\n\nSe ha  encontrado %d resultados"%resultados
    conectar.close()
    menu = raw_input()
    os.system("clear")
    opcUsuario()
   

#**********************************************************OMSI***********************************************************
def funModificar(conectar):
   
    print "\n\nDigite sus datos:\n"
    ide = raw_input("ID de contactos a Modificar: ")
    nuevo_nombre = raw_input("Nuevo nombre: ")
    nuevo_nombre = (nuevo_nombre.upper())
    cursor = conectar.cursor()

    sql = "UPDATE contactos SET nombre='"+nuevo_nombre+"' WHERE id='"+ide+"'"
    try:
            cursor.execute(sql)
        conectar.commit()

        except MySQLdb.Error, e:
            print "Erro: " + sql
            print e   

    print "La modficacion  se ha realizado correctamente."
    conectar.close()
    menu = raw_input()
    os.system("clear")
    opcUsuario()


#**********************************************************OMSI***********************************************************
def funEliminar(conectar):

    print "\n\nIntroduzca sus datos:\n"
    ide_eliminar = raw_input("ID a Eliminar: ")
    cursor = conectar.cursor()

    sql = "DELETE FROM contactos WHERE id='"+ide_eliminar+"'"
    try:
            cursor.execute(sql)
        conectar.commit()

        except MySQLdb.Error, e:
            print "Erro: " + sql
            print e   

    print "La eliminacion a sido completado."
    conectar.close()
    menu = raw_input()
    os.system("clear")
    opcUsuario()

#**********************************************************OMSI***********************************************************
def funMostrarTodos(conectar):

    resultados = 0
    cursor = conectar.cursor()
     sql="SELECT * FROM  contactos;"

       try:
            cursor.execute(sql)
        resultado = cursor.fetchall()
       
        for datos in resultado:
            ide = datos[0]
                    nombre = datos[1]
            direccion = datos[2]
            email = datos[3]
            telefono = datos[4]
            resultados= int(resultados)
            resultados = resultados + 1
            print"----------------------------------"
            print " ID: %s\n Nombre: %s\n Direccion: %s\n Email: %s\n Telefono: %s"%(ide, nombre, direccion, email, telefono)
        conectar.commit()

        except MySQLdb.Error, e:
            print "Erro: " + sql
            print e

    print "\n\n encontrados %d resultados"%resultados
    conectar.close()
    menu = raw_input()
    os.system("clear")
    opcUsuario()
   

#**********************************************************OMSI***********************************************************
def opcUsuario():

    os.system("clear");
    print (80 * '=')
    print "=======OMSICLIENT V.1========"
    print (80 * '=')
    opc = raw_input("Seleccione la opcion deseada\n\n[1] - Registrar\n[2] - Consultar\n[3] - Modificar\n[4] - Eliminar\n[5] - Mostrar Todos\n[6] - Salir\n")

    try:
        opc = int(opc)
        if opc<1 opc="" or="">6:
            os.system("clear");
            print "Opcion invalida: Verifique el valor insertado"   
            time.sleep(2)
            opcUsuario()
    except:
        os.system("clear");
        print "Opcion invalida: Verifique el valor insertado"
        time.sleep(2)
        opcUsuario()

    if opc == 1:
        conectar = conexionBd()
        funRegistrar(conectar)

    elif opc == 2:
        conectar = conexionBd()
        funConsultar(conectar)

    elif opc == 3:
        conectar = conexionBd()
        funModificar(conectar)

    elif opc == 4:
        conectar = conexionBd()
        funEliminar(conectar)

    elif opc == 5:
        conectar = conexionBd()
        funMostrarTodos(conectar)

    elif opc == 6:
        sys.exit()


#**********************************************************OMSI***********************************************************
if __name__=='__main__':
    opcUsuario()   


BASE DE DATOS DE LA APLIACION

--
-- Base de datos: `agenda`

CREATE TABLE IF NOT EXISTS `contactos` (
`id` int(10) unsigned NOT NULL,
  `nombre` varchar(80) COLLATE utf8_spanish_ci NOT NULL,
  `apellido` varchar(150) COLLATE utf8_spanish_ci NOT NULL,
  `calle` varchar(150) COLLATE utf8_spanish_ci NOT NULL,
  `pueblo` varchar(150) COLLATE utf8_spanish_ci NOT NULL,
  `email` varchar(40) COLLATE utf8_spanish_ci NOT NULL,
  `telefono` int(15) NOT NULL,
  `cantidad_pc` int(15) NOT NULL,
  `marca` varchar(80) COLLATE utf8_spanish_ci NOT NULL,
  `modelo` varchar(80) COLLATE utf8_spanish_ci NOT NULL,
  `color` varchar(80) COLLATE utf8_spanish_ci NOT NULL,
  `fallos` text COLLATE utf8_spanish_ci NOT NULL,
  `colonia` varchar(200) COLLATE utf8_spanish_ci DEFAULT NULL,
  `fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=1 ;

ESERO Y LES GUSTE CUALQUIER DUDA PODRAN CONTACTARME POR FACEBOOK 
O POR SKYPE:omsi.org.mx

si necesitan el codigo original mandeme un mensaje y se lo envio completo saludos y bendiciones