2011-07-13 31 views
15

Pensando en un servicio web completamente construido encima de MongoDB, aunque estoy bastante cómodo con PyMongo, me gustaría saber si ustedes tienen experiencias/historias positivas o negativas sobre cualquiera de estos ODM: MongoKit, MongoEngine y MongoAlchemy, este último con un paquete específico Flask "Flask-mongoalchemy".Flask y Mongo

+1

En realidad es bastante confuso tener tantas opciones como ODM, me gustaría que era un odm offitial – danielrvt

Respuesta

21

Realmente no tengo ninguna experiencia real o una historia para ofrecer, pero jugué tanto con MongoKit como con MongoAlchemy, y personalmente decidí probar MongoAlchemy, porque me gusta la sintaxis un poco mejor (probablemente debido a mi herencia Django)


MongoKit:

class BlogPost(Document): 
    structure = { 
       'title':unicode, 
       'body':unicode, 
       'author':unicode, 
       'date_creation':datetime.datetime, 
       'rank':int 
       } 


MongoAlchemy:

class BloodDonor(Document): 
    first_name = StringField() 
    last_name = StringField() 
    age = IntField(min_value=0) 
    gender = EnumField(StringField(), 'male', 'female') 
    blood_type = EnumField(StringField(), 'O+','A+','B+','AB+',) 


Ambos le ayudarán a validar sus datos, le permitirá imponer algo así como un esquema (solo en aplicación leve l), y le ahorrará algo de tipeo (específicamente corchetes).

MongoKit es más completo. Elegí MongoAlchemy porque no quería escribir structure = {} todo el tiempo, y la especificación de su base de datos y la recopilación usando con.test.example.BlogPost() me pareció un error (aunque no tiene que hacerlo de esta manera).

Pruebe ambos y elija el que mejor se adapte a sus necesidades.

Como ya has mencionado, hay una extensión Flask-MongoAlchemy, que funciona muy bien. Si desea utilizar MongoKit, la excelente documentación Frasco obtendrá vas en ningún momento: http://flask.pocoo.org/docs/patterns/mongokit/

Lo bueno es que usted puede probar uno, si no le gusta se puede cambiar a otro, o soltar a pymongo sin tener que cambiar nada en la base de datos.

+0

Este post está genial, muchas gracias. – Ms01

22

Utilizo MongoEngine con matraz sin problemas. Hemos escrito (recursos recaudados) que incluyen el apoyo y soporte wtform matraz de depurador así:

https://github.com/MongoEngine/flask-mongoengine/

+7

Permite obtener esto en el índice del paquete de Python, es fantástico. –

Cuestiones relacionadas