Suy nghĩ về một dịch vụ web hoàn toàn được xây dựng trên MongoDB, trong khi tôi khá dễ nhầm lẫn với PyMongo, tôi muốn biết các bạn có bất kỳ trải nghiệm tích cực hay tiêu cực nào về một trong những ODM này: MongoKit, MongoEngine và MongoAlchemy, sau này có một gói Flask cụ thể "Flask-mongoalchemy".Flask và Mongo
Trả lời
Tôi không thực sự có bất kỳ kinh nghiệm thực tế hoặc câu chuyện để cung cấp, nhưng tôi chơi với cả MongoKit và MongoAlchemy, và cá nhân tôi quyết định thử MongoAlchemy, bởi vì tôi thích cú pháp tốt hơn một chút (có lẽ là do di sản Django của tôi).
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+',)
Cả hai sẽ giúp bạn để xác nhận dữ liệu của bạn, sẽ cho phép bạn áp đặt một cái gì đó giống như một schema (chỉ trên ứng dụng leve l), và sẽ giúp bạn tiết kiệm một số đánh máy (cụ thể là dấu ngoặc vuông).
MongoKit hoàn chỉnh hơn. Tôi đã chọn MongoAlchemy vì tôi không muốn nhập structure = {}
mọi lúc, và chỉ định db và bộ sưu tập của bạn bằng cách sử dụng con.test.example.BlogPost()
chỉ cảm thấy sai (mặc dù bạn không phải thực hiện theo cách này).
Hãy thử cả hai và chọn loại phù hợp nhất với bạn.
Như bạn đã đề cập, có một phần mở rộng Flask-MongoAlchemy, hoạt động tuyệt vời. Nếu bạn muốn sử dụng MongoKit, tài liệu Flask tuyệt vời sẽ giúp bạn có được sẽ không có thời gian: http://flask.pocoo.org/docs/patterns/mongokit/
Điều tuyệt vời là bạn có thể chỉ cần cố gắng một, nếu bạn không thích nó, bạn có thể chuyển sang khác, hoặc thả xuống pymongo mà không phải thay đổi bất kỳ thứ gì trong cơ sở dữ liệu.
bài này tuyệt vời, cảm ơn rất nhiều. – Ms01
Tôi sử dụng MongoEngine với bình không có vấn đề gì. Chúng tôi đã viết (nguồn thu) trong đó bao gồm hỗ trợ wtform và hỗ trợ bình-debugger cũng như:
Cho phép nhận được điều này trong chỉ mục Gói Python, thật tuyệt vời. –
- 1. Flask-Admin + (Flask-Login và/hoặc Flask-Principal)
- 2. Flask-auth, Hiệu trưởng và Flask Security
- 3. Mongo Db và Spring
- 4. Flask-login và LDAP
- 5. Mongo DB Xóa trường và giá trị
- 6. Truyền dữ liệu bằng Python và Flask
- 7. Cách chuyển hướng với Flask và jQuery
- 8. Flask và Web.py cả treo trên atexit
- 9. Redis, Mongo hoặc Hazelcast?
- 10. Gỡ cài đặt mongo
- 11. MongoKit vs MongoEngine vs Flask-MongoAlchemy cho Flask
- 12. Yii Sử dụng mongo DB và MySQL cùng một lúc
- 13. Lưu trữ Utc và giờ địa phương ở Mongo
- 14. chỉ mục thưa thớt và giá trị null trong mongo
- 15. Upserting trong Mongo DB và các vấn đề Id
- 16. Mở và đóng 16000 trường hợp Mongo DB trong PHP
- 17. mongo sử dụng subcollection
- 18. Cài đặt Mongo
- 19. test flask sql alchemy
- 20. Tôi không thể nhập Flask-WTF TextField và BooleanField
- 21. Sự khác biệt giữa Flask và Webapp2 (GAE)
- 22. Các vấn đề về Flask-Login và Heroku
- 23. url cấu trúc và hình thức bài viết với Flask
- 24. Flask mongoengine pagination
- 25. Mongo Vs Raven Đánh giá
- 26. Bình - làm cách nào để kết hợp Flask-WTF và Flask-SQLAlchemy để chỉnh sửa mô hình db?
- 27. Phân loại phức tạp Mongo?
- 28. Hiểu Mongo db giải thích
- 29. remove _id từ Mongo dẫn
- 30. Tệp Mongo "prealloc" chiếm phòng
Trên thực tế là khá khó hiểu có rất nhiều tùy chọn như odm, muốn có một odm offitial – danielrvt