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
Respuesta
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.
Este post está genial, muchas gracias. – Ms01
Utilizo MongoEngine con matraz sin problemas. Hemos escrito (recursos recaudados) que incluyen el apoyo y soporte wtform matraz de depurador así:
Permite obtener esto en el índice del paquete de Python, es fantástico. –
- 1. Mongo Db y Spring
- 2. Diferencia entre Flask y Webapp2 (GAE)
- 3. mongo - rubí mongo problema de conexión
- 4. Frasco: ¿cómo puedo combinar Flask-WTF y Flask-SQLAlchemy para editar modelos db?
- 5. Activos específicos de planos en Flask utilizando Flask-Assets?
- 6. índices dispersos y valores nulos en mongo
- 7. Buscar y eliminar todo en mongo/mongoid
- 8. heroku mongohq y MongoId Mongo :: ConnectionFailure
- 9. Índices compuestos en Mongo y clasificación
- 10. Binning y tabulate (unique/count) en Mongo
- 11. Utilice Mongo Engine y PyMongo juntos
- 12. Generic CRUD admin for Flask, with WTForms?
- 13. Flask long routines
- 14. Problemas de fecha y hora con Mongo y C#
- 15. PHP Mongo: Aviso: Mongo :: __ construct(): servidores de análisis sintáctico
- 16. Mongo clasificación compleja?
- 17. Redis, Mongo o Hazelcast?
- 18. Muestreo aleatorio de Mongo
- 19. Devolver mensajes de error de API con Python y Flask
- 20. ¿Cómo utilizo las rutas de Flask con Apache y mod_wsgi?
- 21. En Flask, configure una cookie y luego redirija al usuario
- 22. Flask/Werkzeug depurador, modelo de proceso y código de inicialización
- 23. SqlAlchemy y Flask, cómo consultar la relación muchos a muchos
- 24. Borrando fila con Flask-SQLAlchemy
- 25. mongo usando la subcolección
- 26. Ruby Mongo Driver - Find_by_Id
- 27. Uso de MySQL en Flask
- 28. ¿Hay alguna manera de ocultar la etiqueta csrf mientras recorre el formulario usando Flask y Flask-WTForms?
- 29. DDD y MongoDB: ¿Está bien dejar que Mongo cree ObjectIDs?
- 30. mongo db diseño de seguimiento y feeds, ¿dónde debo incrustar?
En realidad es bastante confuso tener tantas opciones como ODM, me gustaría que era un odm offitial – danielrvt