mongodb - replicar - Frasco y Mongo
mongodb replica set (2)
Pensando en un servicio web completamente construido sobre MongoDB, aunque estoy bastante cómodo con PyMongo, me gustaría saber si tienen experiencias o historias positivas o negativas sobre alguno de estos ODM: MongoKit, MongoEngine y Mongo Alchemy, este último tener un paquete específico para el matraz "Flask-mongoalchemy".
Realmente no tengo ninguna experiencia real o historia que ofrecer, pero jugué tanto con MongoKit como con MongoAlchemy, y personalmente decidí probar MongoAlchemy, porque me gusta un poco más la sintaxis (probablemente debido a mi herencia de Django).
MongoKit :
class BlogPost(Document):
structure = {
''title'':unicode,
''body'':unicode,
''author'':unicode,
''date_creation'':datetime.datetime,
''rank'':int
}
Mongo Alquimia
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án imponer algo como un esquema (solo en el nivel de la aplicación) y le ahorrarán algo de escritura (específicamente corchetes).
MongoKit es más completo. Elegí MongoAlchemy porque no quería escribir la structure = {}
todo el tiempo, y especificar tu base de datos y colección usando con.test.example.BlogPost()
simplemente me sentí mal (aunque no tienes que hacerlo de esta manera ).
Prueba ambos y elige el que mejor te funcione.
Como ya mencionaste, hay una extensión Flask-MongoAlchemy, que funciona muy bien. Si desea utilizar MongoKit, la excelente documentación de Flask lo pondrá en funcionamiento en poco tiempo: http://flask.pocoo.org/docs/patterns/mongokit/
Lo bueno es que solo puedes probar uno, si no te gusta, puedes cambiar a otro o pasar a pymongo sin tener que cambiar nada en la base de datos.
Yo uso MongoEngine con matraz sin problemas. Hemos escrito (recopilado recursos) que incluyen también el soporte de wtform y el soporte del depurador-matraz: