最新的django和mongo引擎,你需要编辑settings.py进行安装吗?

时间:2015-02-05 22:39:26

标签: python django mongodb mongoengine

this tutorial中,它永远不会在以前的文档中编辑settings.py,它支持您需要编辑settings.py的django 1.5。

那么您是否需要编辑该文件?作者是否跳过了那部分,因为它有点明显?

我实际上在新文档中看不到名称settings.py,并且网上没有太多的mongo db django教程。这里的问题,如果有的话已经过时了。因此,如果这是一个天真的问题,我很抱歉。

如果你想使用pymongo,AFAIK你不能通过settings.py连接,所以我只需要问。

1 个答案:

答案 0 :(得分:1)

就个人而言,我喜欢在设置中拥有所有数据库配置,因此我在settings.py中配置了mongo数据库配置以及我的关系数据库配置:

MONGO_DBS = {
    'default': {
        'alias': 'default',         # the alias that Documents refer to
        'name': 'default',          # the name of the database to connect to
        'host': 'localhost',        # the host
        'port': 27017,              # the port
        'username': '',             # not implemented
        'password': '',             # not implemented
        'enabled': False,           # whether or not we connect to this database
    },
}

然后,我有一小段代码在settings.py中运行(提示抱怨)并连接到所有相关的mongo实例:

from mongoengine import connect
import sys

if not (len(sys.argv) > 1 and sys.argv[1] == 'test'):
    # Don't run this if we're running in unit tests. The test runner will spin
    # up the appropriate databases and spin them down appropriately.
    for db_name in MONGO_DBS:
        db_meta = MONGO_DBS[db_name]
        if db_meta['enabled'] and 'alias' in db_meta:
            connect(db_meta['name'], alias=db_meta['alias'], host=db_meta['host'], port=db_meta['port'],
                lazy_connect=db_meta.get('lazy', True))

显然,只要身份验证没有发生,此代码仍然有些不完整。但对你来说这应该是一个合理的启动点。

我应该补充一点,我只是在mongoengine的django文档页面中挖掘了对settings.py的引用。目前,它位于http://docs.mongoengine.org/en/latest/django.html

最后,我应该补充一点,这个建议适用于mongoengine 0.8.7(最新的答案)。 YMMV与未来版本。