首页 > 解决方案 > 如何在#django框架中以编程方式在运行时连接数据库

问题描述

我在我的用户配置文件中有一个字段来定义数据库名称,该用户可以连接。

DATABASES = {
    'app_data': {
        'NAME': 'app_data',
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'USER': 'postgres_user',
        'PASSWORD': 's3krit'
    },
    'DBNAME_1': {
        'NAME': 'user_data',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_user',
        'PASSWORD': 'priv4te'
    }
}

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    dbname = models.CharField(u'Database name', max_length=100, null=True, blank=True)

不连接到 2 个不同的数据库,只在单个数据库中创建

标签: djangopython-3.x

解决方案


您可以在运行时将您选择的数据库与 using 关键字一起使用。

UserProfile.objects.using('user_data').all()

推荐阅读