Insertar documentos con Python en mongoDB (Curso de MongoDB y Python [06] )
En este tutorial vamos a insertar documentos con Python en mongoDB siguiendo estos pasos:
Crear 3 labels y 3 entry con Nombre, Sexo, Calificacion. Crear un botón que ejecute la función agregarRegistro La función agregarRegistro realizará lo siguiente:Validar que los entry no esten vacios. Insertar el nuevo documento.
Codigos: https://github.com/programadornovato/curso-python-mongodb/commit/e63daa993c2d19fe0b600e4e466d2f7b5fb259b6
from tkinter import messagebox
MONGO_URI= "mongodb://" +MONGO_HOST+ ":" +MONGO_PUERTO+ "/"
MONGO_BASEDATOS= "escuela"
MONGO_COLECCION= "alumnos"
cliente=pymongo. MongoClient ( MONGO_URI,serverSelectionTimeoutMS=MONGO_TIEMPO_FUERA )
baseDatos=cliente [ MONGO_BASEDATOS ]
coleccion=baseDatos [ MONGO_COLECCION ]
registros=tabla. get_children ()
for registro in registros:
for documento in coleccion. find () :
tabla. insert ( '' , 0 ,text=documento [ "_id" ] ,values=documento [ "nombre" ])
except pymongo. errors . ServerSelectionTimeoutError as errorTiempo:
print ( "Tiempo exedido " +errorTiempo )
except pymongo. errors . ConnectionFailure as errorConexion:
print ( "Fallo al conectarse a mongodb " +errorConexion )
if len ( nombre. get ()) != 0 and len ( calificacion. get ()) != 0 and len ( sexo. get ()) != 0 :
documento= { "nombre" :nombre. get () , "calificacion" :calificacion. get () , "sexo" :sexo. get ()}
coleccion. insert ( documento )
calificacion. delete ( 0 , END )
except pymongo. errors . ConnectionFailure as error:
messagebox. showerror ( message= "Los campos no pueden estar vacios" )
tabla=ttk. Treeview ( ventana,columns= 2 )
tabla. grid ( row= 1 ,column= 0 ,columnspan= 2 )
tabla. heading ( "#0" ,text= "ID" )
tabla. heading ( "#1" ,text= "NOMBRE" )
Label ( ventana,text= "Nombre" ) . grid ( row= 2 ,column= 0 )
nombre. grid ( row= 2 ,column= 1 )
Label ( ventana,text= "Sexo" ) . grid ( row= 3 ,column= 0 )
sexo. grid ( row= 3 ,column= 1 )
Label ( ventana,text= "Calificacion" ) . grid ( row= 4 ,column= 0 )
calificacion= Entry ( ventana )
calificacion. grid ( row= 4 ,column= 1 )
crear= Button ( ventana,text= "Crear alumno" ,command=crearRegistro,bg= "green" ,fg= "white" )
crear. grid ( row= 5 ,columnspan= 2 )
from tkinter import*
from tkinter import ttk
from tkinter import messagebox
import pymongo
MONGO_HOST="localhost"
MONGO_PUERTO="27017"
MONGO_TIEMPO_FUERA=1000
MONGO_URI="mongodb://"+MONGO_HOST+":"+MONGO_PUERTO+"/"
MONGO_BASEDATOS="escuela"
MONGO_COLECCION="alumnos"
cliente=pymongo.MongoClient(MONGO_URI,serverSelectionTimeoutMS=MONGO_TIEMPO_FUERA)
baseDatos=cliente[MONGO_BASEDATOS]
coleccion=baseDatos[MONGO_COLECCION]
def mostrarDatos():
try:
registros=tabla.get_children()
for registro in registros:
tabla.delete(registro)
for documento in coleccion.find():
tabla.insert('',0,text=documento["_id"],values=documento["nombre"])
cliente.close()
except pymongo.errors.ServerSelectionTimeoutError as errorTiempo:
print("Tiempo exedido "+errorTiempo)
except pymongo.errors.ConnectionFailure as errorConexion:
print("Fallo al conectarse a mongodb "+errorConexion)
def crearRegistro():
if len(nombre.get())!=0 and len(calificacion.get())!=0 and len(sexo.get())!=0 :
try:
documento={"nombre":nombre.get(),"calificacion":calificacion.get(),"sexo":sexo.get()}
coleccion.insert(documento)
nombre.delete(0,END)
sexo.delete(0,END)
calificacion.delete(0,END)
except pymongo.errors.ConnectionFailure as error:
print(error)
else:
messagebox.showerror(message="Los campos no pueden estar vacios")
mostrarDatos()
ventana=Tk()
tabla=ttk.Treeview(ventana,columns=2)
tabla.grid(row=1,column=0,columnspan=2)
tabla.heading("#0",text="ID")
tabla.heading("#1",text="NOMBRE")
#Nombre
Label(ventana,text="Nombre").grid(row=2,column=0)
nombre=Entry(ventana)
nombre.grid(row=2,column=1)
#Sexo
Label(ventana,text="Sexo").grid(row=3,column=0)
sexo=Entry(ventana)
sexo.grid(row=3,column=1)
#Calificacion
Label(ventana,text="Calificacion").grid(row=4,column=0)
calificacion=Entry(ventana)
calificacion.grid(row=4,column=1)
#Boton crear
crear=Button(ventana,text="Crear alumno",command=crearRegistro,bg="green",fg="white")
crear.grid(row=5,columnspan=2)
mostrarDatos()
ventana.mainloop()
from tkinter import*
from tkinter import ttk
from tkinter import messagebox
import pymongo
MONGO_HOST="localhost"
MONGO_PUERTO="27017"
MONGO_TIEMPO_FUERA=1000
MONGO_URI="mongodb://"+MONGO_HOST+":"+MONGO_PUERTO+"/"
MONGO_BASEDATOS="escuela"
MONGO_COLECCION="alumnos"
cliente=pymongo.MongoClient(MONGO_URI,serverSelectionTimeoutMS=MONGO_TIEMPO_FUERA)
baseDatos=cliente[MONGO_BASEDATOS]
coleccion=baseDatos[MONGO_COLECCION]
def mostrarDatos():
try:
registros=tabla.get_children()
for registro in registros:
tabla.delete(registro)
for documento in coleccion.find():
tabla.insert('',0,text=documento["_id"],values=documento["nombre"])
cliente.close()
except pymongo.errors.ServerSelectionTimeoutError as errorTiempo:
print("Tiempo exedido "+errorTiempo)
except pymongo.errors.ConnectionFailure as errorConexion:
print("Fallo al conectarse a mongodb "+errorConexion)
def crearRegistro():
if len(nombre.get())!=0 and len(calificacion.get())!=0 and len(sexo.get())!=0 :
try:
documento={"nombre":nombre.get(),"calificacion":calificacion.get(),"sexo":sexo.get()}
coleccion.insert(documento)
nombre.delete(0,END)
sexo.delete(0,END)
calificacion.delete(0,END)
except pymongo.errors.ConnectionFailure as error:
print(error)
else:
messagebox.showerror(message="Los campos no pueden estar vacios")
mostrarDatos()
ventana=Tk()
tabla=ttk.Treeview(ventana,columns=2)
tabla.grid(row=1,column=0,columnspan=2)
tabla.heading("#0",text="ID")
tabla.heading("#1",text="NOMBRE")
#Nombre
Label(ventana,text="Nombre").grid(row=2,column=0)
nombre=Entry(ventana)
nombre.grid(row=2,column=1)
#Sexo
Label(ventana,text="Sexo").grid(row=3,column=0)
sexo=Entry(ventana)
sexo.grid(row=3,column=1)
#Calificacion
Label(ventana,text="Calificacion").grid(row=4,column=0)
calificacion=Entry(ventana)
calificacion.grid(row=4,column=1)
#Boton crear
crear=Button(ventana,text="Crear alumno",command=crearRegistro,bg="green",fg="white")
crear.grid(row=5,columnspan=2)
mostrarDatos()
ventana.mainloop()
VIDEO
Insertar documentos con Python en mongoDB
🎦[CURSO] PYTHON Y MONGODB (CREAR UN CRUD): https://www.youtube.com/playlist?list=PLCTD_CpMeEKR5cVnmTyFqUuzBOmEAjG4z
Curso de python de 0 a 100 (Opcional). https://www.youtube.com/playlist?list=PLCTD_CpMeEKRppvi86Dy8CPYZ8-XzN2qu [CURSO] MONGODB DE 0 A 100: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQ9_WJOtexctR6Iqw7whMXY [CURSO] PYTHON Y TKINTER [CREAR INTERFAS GRAFICA]🐍: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQBfbGkWHmc2TlMdOlWjla7
🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial 🔗 Twitter: https://twitter.com/programadornova 🔗 Linkedin: https://www.linkedin.com/in/programadornovato/ 🔗 Instagram: https://www.instagram.com/programadornovato/ 🔗 Pagina oficial: https://www.programadornovato.com 🔗 Gracias por apoyar este canal: https://www.patreon.com/programadornovato
<<Anterior tutorial
Siguiente tutorial >>