Código de Python - Agenda en python con Sqlite3

Imágen de perfil

Agenda en python con Sqlite3gráfica de visualizaciones


Python

Publicado el 5 de Noviembre del 2014 por Administrador (718 códigos)
11.945 visualizaciones desde el 5 de Noviembre del 2014
Simple agenda a modo de ejemplo para visualizar como trabajar con la base de datos sqlite3.
Esta permite añadir, eliminar, listas y buscar contactos.

Requerimientos

Este desarrollo se ha realizado bajo Linux.
Necesitaras tener instalado: sqlite3

Versión 0.1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 5 de Noviembre del 2014gráfica de visualizaciones de la versión: Versión 0.1
11.946 visualizaciones desde el 5 de Noviembre del 2014
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

La primera vez que se ejecute el script, creara la base de datos

Forma parte de PythonDiario
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#!/usr/bin/env 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 "   Agenda"
	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 ""
		print ""
		time.sleep(3)
		exit()
 
 
main()



Comentarios sobre la versión: Versión 0.1 (1)

mannix64
16 de Abril del 2019
estrellaestrellaestrellaestrellaestrella
Muy buenas el codigo de este script, crea una sencilla agenda, pero útil, al ejecutar el script se crea una base de datos y una tabla, a partir de ahí arranca un menú, donde todas las opciones funcionan perfectamente, a excepción de la opción modificar un registro, lo cierto es que me he quedado ahí atascado, no doy con el codigo y he probado creo que todo, a ver si alguien me hecha un cable por favor. Un saludo.
Importamos el modulo sqlite3

import sqlite3
Creación de la base de datos

def crear_bd():

conectar = sqlite3.connect("base_primera.db")

cursor = conectar.cursor()

Creación de la tabla

try:

cursor.execute('''

CREATE TABLE agenda (

ide INTEGER PRIMARY KEY AUTOINCREMENT,

nom VARCHAR(60),

tel VARCHAR(12),

mail VARCHAR(50) UNIQUE NOT NULL

)

''' )

except sqlite3.OperationalError:

print("¡La tabla ya existe!")

else:

print("!La tabla se ha creado correctamente!")

Declaración de funciones:

def anadir_registro():

nom = input("Nombre: ")

tel = input("teléfono: ")

mail = input("E-mail: ")

conectar = sqlite3.connect("base_primera.db")

cursor = conectar.cursor()

cursor.execute("INSERT INTO agenda VALUES (null,'{}','{}','{}')".format(nom, tel, mail))

conectar.commit()

conectar.close()

def baja_registro():

conectar = sqlite3.connect("base_primera.db")

cursor = conectar.cursor()



registros = cursor.execute("SELECT * FROM agenda").fetchall()

print("Estos son todos los registros:\n ")

for agenda in registros:

print(agenda)



ide = input("Escribe la ID del registro a borrar: ")



cursor.execute("DELETE FROM agenda WHERE (ide='{}')".format(ide))

print("¡El registro '{}' se ha borrado correctamente!".format(ide))

conectar.commit()

conectar.close()

def ver_registros():

conectar = sqlite3.connect("base_primera.db")

cursor = conectar.cursor()

registros = cursor.execute("SELECT * FROM agenda").fetchall()

print("Estos son todos los registros:\n ")

for agenda in registros:

print(agenda)

conectar.close()

def modificar():

conectar = sqlite3.connect("base_primera.db")

cursor = conectar.cursor()

registros = cursor.execute("SELECT * FROM agenda").fetchall()

print("Estos son todos los registros:\n ")

for agenda in registros:

print(agenda)

conectar = sqlite3.connect("base_primera.db")

cursor = conectar.cursor()

ide = input("¿Qué registro quieres modificar?: ")

cursor.execute("SELECT * FROM agenda (ide='{}')".format(ide)).fetchone()

conectar.commit()

conectar.close()

llamada a la base de dades

crear_bd()
Construcción del menú

while True:

print("\n***********************")

print("**** AGENDA BASICA ****")

print("***********************\n")

print("Elige una opción: ")

opcion = input('''

[1] Alta nuevo registro.

[2] Baja de registro.

[3] Ver registros.

[4] Modificación de un registro.

[5] Salir del programa.\n

''')

if opcion == "1":

anadir_registro()

elif opcion == "2":

baja_registro()

elif opcion == "3":

ver_registros()



elif opcion == "4":

modificar()

elif opcion == "5":

print("¡Nos vemos!")

break

else:

print("¡Opción incorrecta, vuelve a intentarlo!")
Responder

Comentar la versión: Versión 0.1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2835