烧瓶和蒙古

art*_*hoo 17 mongodb mongoengine flask mongokit

考虑到完全建立在MongoDB之上的Web服务,虽然我对PyMongo很有帮助,但我想知道你们是否对这些ODM中的任何一个有任何积极或消极的经历/故事:MongoKit,MongoEngine和MongoAlchemy,后者有一个Flask特定包装"Flask-mongoalchemy".

Ros*_*oss 22

我使用带烧瓶的MongoEngine没问题.我们编写了(收集的资源),其中包括wtform支持和flask-debugger支持:

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

  • 让我们在Python Package索引中得到它,这太棒了. (7认同)

jev*_*ing 21

我真的没有真正的经验或故事,但我和MongoKit和MongoAlchemy一起玩,我个人决定尝试MongoAlchemy,因为我喜欢语法好一点(可能是因为我的Django传统).


MongoKit:

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


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+',)
Run Code Online (Sandbox Code Playgroud)


两者都可以帮助您验证数据,让您强制使用类似架构的东西(仅限应用程序级别),并为您节省一些打字(特别是括号).

MongoKit更完整.我之所以选择MongoAlchemy是因为我不想一直打字structure = {},con.test.example.BlogPost()只是觉得错误指定你的数据库和集合(尽管你不必这样做).

尝试两者,并选择一个更适合你的.

正如您已经提到的,有一个Flask-MongoAlchemy扩展,它运行良好.如果您想使用MongoKit,优秀的Flask文档将帮助您立即开始:http: //flask.pocoo.org/docs/patterns/mongokit/

最棒的是你可以尝试一个,如果你不喜欢它,你可以切换到另一个,或者放到pymongo而不必更改数据库中的任何内容.