Quantcast
Channel: Planeta Linux Venezuela
Viewing all articles
Browse latest Browse all 1457

Yohan Graterol: Ejemplo de Inserción y Eliminación en MongoEngine (Python)

$
0
0

Hace un mes aproximadamente agregué el paquete de MongoEngine al repositorio oficial de Fedora, actualmente esta disponible desde Fedora 17 en adelante; MongoEngine es un mapeador de documentos muy similar a un ORM como los que encontramos en Django, a diferencia que MongoEngine trabaja con MongoDB y por esa razón es un mapeador de documentos y no relacional, del resto todo es similar… Se define un esquema, se inserta, modifica, elimina y busca aplicando POO en Python.

Ahora, les traigo un ejemplo sencillo para que vean como trabaja este modulo que se instala fácilmente en Fedora (yum install -y python-mongoengine)

El ejemplo

En el siguiente ejemplo se define un documento Usuario con nombre, apellido y correo. Ademas hay 2 funciones de agregado y borrado. Esta comentado y prácticamente auto explicado, aun así lo agregare por parte.

Importando el modulo

1
2
#Importamos los modulos de MongoEngine
from mongoengine import *

Definiendo el esquema

1
2
3
4
5
#Campos de los documentos de la coleccion Usuario
class Usuario(Document):
     correo = StringField(required=True)
     nombre = StringField(max_length=50)
     apellido = StringField(max_length=50)

Funcion de Inserción

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def agregar_usuario(nombre, apellido, correo):
     """
     Agrega un nuevo documento usuario
     a la coleccion Usuario
     """

     print"Agregando al usuario con nombre: ", nombre
     usuario = Usuario()
     usuario.nombre= nombre
     usuario.apellido= apellido
     usuario.correo= correo
 
     if usuario.save():
         print"El usuario con nombre: ", nombre , \
            " ha sido agregado.\n"

Función de Eliminación

1
2
3
4
5
6
7
8
def borrar_usuario(nombre):
     """
     Elimina un documento de la coleccion
     usuario
     """

     usuario = Usuario.objects(nombre = nombre)[0]
     print"El usuario con nombre: ", usuario.nombre," sera eliminado."
     usuario.delete()

Función Main()

Aquí debo mencionar que la BD a usar es prueba, que en mi caso ya configure un usuario y contraseña (http://www.yograterol.me/configurando-control-de-accesso-a-mongodb-con-autenticacion/).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def main():
     #Conexion al servidor
     #connect(BD, username='', password='')
     #Conecta al servidor local si no se le envia el parametro
     #host=''
     connect('prueba', username='prueba', password='prueba')

     #Agregando un usuario
     agregar_usuario("Yohan","Graterol",
                 "yohangraterol92 (a r r o b a s i n s p a m) g m a i l dot com")

     #Busqueda e impresion de los usuarios en la coleccion
     for usuario in Usuario.objects:
          print"Nombre: ", usuario.nombre
          print"Apellido: ", usuario.apellido
          print"Correo: ", usuario.correo
          print

     #Se elimina el usuario
     borrar_usuario("Yohan")


if __name__ =="__main__":
     main()

 Allí pueden ver el código e ir analizando lo que realiza. La salida del programa es lo siguiente.

1
2
3
4
5
6
7
8
Agregando al usuario con nombre:  Yohan
El usuario con nombre:  Yohan  ha sido agregado.

Nombre:  Yohan
Apellido:  Graterol
Correo:  yohangraterol92 (a r r o b a s i n s p a m) g m a i l dot com

El usuario con nombre:  Yohan  sera eliminado.

Pueden conseguir todo el código en https://github.com/yograterol/python-ejemplos


Viewing all articles
Browse latest Browse all 1457

Trending Articles