考虑一个完全建立在 MongoDB 之上的 Web 服务,虽然我对 PyMongo 很满意,但我想知道你们是否对以下任何一个 ODM 有任何积极或消极的经验/故事:MongoKit、MongoEngine 和 MongoAlchemy,后者有一个 Flask 特定的包“Flask-mongoalchemy”。
问问题
9129 次
2 回答
22
我用 MongoEngine 和烧瓶没问题。我们已经编写了(收集的资源),其中还包括 wtform 支持和 flask-debugger 支持:
于 2011-08-16T15:59:48.633 回答
21
我真的没有任何真实的经验或故事可以提供,但我同时使用了 MongoKit 和 MongoAlchemy,我个人决定尝试 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 更加完善。我选择 MongoAlchemy 是因为我不想一直打字structure = {}
,并且使用指定你的数据库和集合con.test.example.BlogPost()
感觉不对(尽管你不必这样做)。
尝试两者,然后选择更适合您的一种。
正如您已经提到的,有一个 Flask-MongoAlchemy 扩展,效果很好。如果您想使用 MongoKit,优秀的 Flask 文档将让您立即上手:http: //flask.pocoo.org/docs/patterns/mongokit/
很棒的是,您可以尝试一个,如果您不喜欢它,您可以切换到另一个,或者直接使用 pymongo,而无需更改数据库中的任何内容。
于 2011-07-14T22:39:06.490 回答