-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
185 lines (148 loc) · 6.57 KB
/
app.py
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
184
185
import pymongo as mongo #importar el controlador para la conexión a la base de datos
miConexion = mongo.MongoClient("mongodb://localhost:27017/") #objeto para la Conexión al servidor mongodb
baseDatos = miConexion["miTienda"] #acceso a la base de datos tienda
#print(type(baseDatos))
productos = baseDatos["productos"] #acceso a la colección (tabla productos)
#print(type(productos))
# -------------------------------------------------------------------------------------------------
#Validar que la base de datos no exista para crearla
def existeBaseDatos():
listaBaseDatos = miConexion.list_database_names()
if "miTienda" in listaBaseDatos:
return True
return False
# -------------------------------------------------------------------------------------------------
#Agregar un producto a la colección productos de la base de datos tienda
def agregarProducto():
try:
#datos del producto - datos quemados - podrian ser solicittados
codigo = 10
nombre = "Televisor"
precio = 2500000
categoria = "Electrodomestico"
#Objeto producto - tipo diccionario
producto = {
"codigo": codigo,
"nombre": nombre,
"precio": precio,
"categoria": categoria
}
#Insertar datos a la colección de la base de datos
code = {"codigo":codigo}
p = productos.find_one(code)
if (p is not None):
print(f"Producto con ese codigo ya existe")
else:
resultado = productos.insert_one(producto)
print("Producto agregado correctamente")
except mongo.errors as error:
print(f"Problemas al agregar producto. Error: {error}")
# -------------------------------------------------------------------------------------------------
#Consultar producto por código
def consultarPorCodigo():
try:
codigoConsultar = int(input("Ingrese el código del producto a consultar: ")) #código del producto a consultar
consulta = {"codigo":codigoConsultar}
#cosnultar en la coleccion
#producto = baseDatos.producto.find_one(consulta)
producto = productos.find_one(consulta)
#Mostrar datos del producto
if(producto is not None):
print(f"Datos del producto: ")
print(producto)
print(f"Código: {producto['codigo']}")
print(f"Nombre: {producto['nombre']}")
print(f"Precio: {producto['precio']}")
print(f"Categoria: {producto['categoria']}")
else:
print(f"Producto con el código {codigoConsultar} NO existe")
except mongo.errors as error:
print(f"Problemas al consultar el producto. Error: {error}")
# -------------------------------------------------------------------------------------------------
#Actualizar producto
def actualizarProducto():
try:
codigoProducto = int(input("Ingrese el código del producto a actualizar: ")) #Código del producto a actualizar
criterio = {"codigo":codigoProducto} #criterio para saber que producto se va a actualizar
#diccionario con los datos nuevos
datosActualiar = {
"codigo": 1,
"nombre": "Smartphone",
"precio": 4500000,
"categoria": "dispositivo electronico"
}
consulta = {"$set" : datosActualiar}
#resultado = productos.update_one(criterio,consulta)
resultado = baseDatos.productos.update_one(criterio,consulta)
print(f"Producto actualizado correctamente")
except mongo.errors as error:
print(f"Porblemas al actualizar producto. Error: {error}")
# -------------------------------------------------------------------------------------------------
#Eliminar producto
def eliminarProducto():
try:
codigoProductoEliminar = int(input("Ingrese el código del producto a eliminar: ")) #Código del prodcuto a eliminar
consulta = {"codigo":codigoProductoEliminar}
baseDatos.productos.delete_one(consulta)
#productos.delete_one(consulta) #Eliminar producto de la colección
producto = productos.find_one(consulta) #verificar despues si existe
if(producto is None):
print(f"Producto eliminado de la colección {productos.name}")
else:
print(f"No se ha podido eliminar el producto de la colección {productos.name}")
except mongo.errors as error:
print(f"Problemas al eliminar el producto. Error: {error}")
# -------------------------------------------------------------------------------------------------
#Agregar varios productos
def agregarVariosProductos():
try:
producto1 = {
"codigo": 1,
"nombre": "televisor",
"precio": 2500000,
"categoria": "electrodomestico"
}
producto2 = {
"codigo": 2,
"nombre": "computador",
"precio": 5000000,
"categoria": "dispositivo electronico"
}
producto3 = {
"codigo": 3,
"nombre": "nevera",
"precio": 3600000,
"categoria": "electrodomestico"
}
producto4 = {
"codigo": 4,
"nombre": "camisa",
"precio": 150000,
"categoria": "ropa"
}
lista_productos = [producto1,producto2,producto3,producto4]
resultado = productos.insert_many(lista_productos)
print(f"Productos agregados correctamente a la colección {productos.name}")
except mongo.errors as error:
print(f"Problemas al agregar productos. Error: {error}")
# -------------------------------------------------------------------------------------------------
#Listar productos de la colección
def listarProductos():
try:
listaProductos = baseDatos.productos.find()
print(f"\nLista de productos de la colección {productos.name}:")
for producto in listaProductos:
print(f"\nCódigo: {producto['codigo']}")
print(f"Nombre: {producto['nombre']}")
print(f"Precio: {producto['precio']}")
print(f"Categoria: {producto['categoria']}")
print("-"*50)
except mongo.errors as error:
print(f"Problemas al listar los productos. Error: {error}")
# -------------------------------------------------------------------------------------------------
#agregarProducto()
#consultarPorCodigo()
#actualizarProducto()
#eliminarProducto()
#agregarVariosProductos()
listarProductos()