想想一个完全建立在MongoDB之上的Web服务,虽然我非常熟悉Pymogo,但我想知道你们是否有关于这些ODM的正面或负面经验/故事:MongoKit、MongoEngine和MongoAlchemy,后者有一个特定于烧瓶的包。”烧瓶蒙古人炼金术”。
最佳答案
我没有任何真实的经验或故事可以提供,但我玩过蒙古人和蒙古人,我个人决定尝试蒙古人,因为我更喜欢语法(可能是因为我的Django传统)。
蒙古包:
class BlogPost(Document):
structure = {
'title':unicode,
'body':unicode,
'author':unicode,
'date_creation':datetime.datetime,
'rank':int
}
蒙古人炼金术:
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+',)
这两者都将帮助您验证您的数据,允许您强制使用模式之类的内容(仅在应用程序级别),并将为您保存一些键入内容(特别是括号)。
Mongokit更完整。我之所以选择蒙古学,是因为我不想一直输入
structure = {}
,而使用con.test.example.BlogPost()
指定数据库和集合就感觉不对(尽管您不必这样做)。两者都试试,选择一个对你更好的。
正如您已经提到的,有一个烧瓶蒙古人的扩展,这是很好的工作。
如果您想使用MongoKit,优秀的烧瓶文档会让您很快进入:
http://flask.pocoo.org/docs/patterns/mongokit/
最棒的是,你可以尝试一个,如果你不喜欢它,你可以切换到另一个,或者直接转到pymongo,而不必更改数据库中的任何内容。