Django公司设置.py和多数据库帮助

2024-03-29 10:20:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是django1.3,想把我的数据放到1000个数据库中,比如app_idmod_0~ap_idmod_999。 现在我改变了我的设置。在

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'myapp',                      # Or path to database file if using sqlite3.
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.

    },    
}
myapp = DATABASES['default']
DB_MOD = 1000
for i in xrange(0, DB_MOD):
    myapp.__setitem__('NAME', 'myapp_idmod_' + str(i))
    DATABASES.__setitem__('myapp_idmod_' + str(i), myapp)

它不起作用。 我是说当我使用 manage.py syncdb --database=myapp_idmod_0,它不生成表。 为什么?我该怎么做?在


Tags: tonamedefaultforstringpostgresqlmysqlnot
1条回答
网友
1楼 · 发布于 2024-03-29 10:20:27

首先,我无法想象1000个数据库的用途。除非你是脸谱网,我对此表示怀疑。在

其次,将每个实例设置为同一个字典,因此在下一次迭代中更改名称时,以前的名称也会更改。在修改词典之前,你需要把它抄下来。在

最后,__setitem__这是怎么回事?为什么不按正常方式设置字典值?在

for i in xrange(DB_MOD):
    db_dict = myapp.copy()
    db_dict['NAME'] = 'myapp_idmod_' % i
    DATABASES['myapp_idmod_%s' % i] = db_dict

相关问题 更多 >