PS:很是不错的mongoengine新手教程 前端
最近开始作一个Python + MongoDB的项目,用到了MongoEngine这个很是不错的ORM工具,我将MongoEngine的文档翻译一部分出来,与你们分享。 python
安装MongoEngine
为了使用MongoEngine,咱们首先须要先下载一个MongoDB而且确保它能正常运行,你还须要安装pymongo。 git
能够用pip安装MongoEngine: github
- $ pip install mongoengine
可是若是你没有安装setuptool,那么下载一个
MongoEngine
,而后手动安装
- $ python setup.py install
若是你想用最新得MongoEngine,能够从GitHub上下载源码,而后按以下安装: web
- $ git clone git://github.com/hmarr/mongoengine
- $ cd mongoengine
- $ python setup.py install
ps:因为mongoengine底层使用的是pymongo库,因此安装mongoengine的时候必定要安装与其版本配套的pymongo版本,不然在使用的时候或出现调用pymongo上的错误。(通常建议安装最新版的pymongo,不然要上网查下版本匹配)。 mongodb
链接MongoDB
链接一个运行的MongoDB实例,可使用connect( ) 函数。第一个参数是须要链接的数据库名称,若是该数据库不存在,那么就会新建一个相应的数据库。若是该数据库须要验证登陆,那么用户名和密码这些参数也须要提供。 数据库
- from mongoengine import connect
- connect('project1', username='webapp', password='pwd123')
在默认状况下,MongoDB的实例是运行在localhost的27017端口上,若是MongoDB是运行于别的地方,那么就须要提供host和port参数:
- connect('project1', host='192.168.1.35', port=12345)
Uri方式的链接也是支持的
- connect('project1', host='mongodb://localhost/database_name')
在MongoEngine 0.6中添加了对多数据库的支持。使用多数据库的时候使用 connect( ),而且提供一个链接的别名,若是没有提供别名就使用default。 app
在后台里面会使用 register_connection( )来存储那些前端须要的全部别名数据。 webapp
单个的文档也能经过在它们的元数据中提供一个db_alias来实现对多数据库的支持。下面这个例子就使用了3个不一样数据库来存储数据。 函数
- class User(Document):
- name = StringField()
-
- meta = {"db_alias": "user-db"}
-
- class Book(Document):
- name = StringField()
-
- meta = {"db_alias": "book-db"}
-
- class AuthorBooks(Document):
- author = ReferenceField(User)
- book = ReferenceField(Book)
-
- meta = {"db_alias": "users-books-db"}