【问题标题】:How to read table data from non-default database in Django?如何从 Django 中的非默认数据库中读取表数据?
【发布时间】:2015-06-15 19:02:20
【问题描述】:

我的 django 项目使用 2 个数据库、1 个现有数据库和另一个我通过我的项目使用模型创建的数据库。我在 settings.py 中定义了 db,如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'music': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'myMusicDb.sqlite3'),
    }
}

我使用 inspectdb 命令生成模型数据,如果我从 settings.py 中删除默认数据库并将“音乐”数据库设为默认数据库,一切正常。我的查询是如何在 settings.py 中保留两个 db 并使用两个数据库?有没有办法告诉 django 使用 settings.py 中的特定数据库?

【问题讨论】:

    标签: python django database sqlite


    【解决方案1】:

    我在阅读https://docs.djangoproject.com/en/1.7/topics/db/multi-db/ 后找到了答案。 我们可以使用路由器,也可以在查询中使用 using 关键字,例如 -

    Album.objects.using('music').all()
    

    想把它贴出来,可能对某人有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      相关资源
      最近更新 更多