django - 如何在#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 个不同的数据库,只在单个数据库中创建
解决方案
您可以在运行时将您选择的数据库与 using 关键字一起使用。
UserProfile.objects.using('user_data').all()
推荐阅读
- python - Python3:在另一个线程打开输入时在新行上打印
- python - python tkinter错误“AttributeError:'NoneType'对象没有属性'插入'”
- c# - 如何使 ComboBox 向上而不是向下打开列表?
- spring - 谨慎模式的 Logback 会创建损坏的日志文件
- docker - docker 容器重启是如何工作的?
- javascript - 在循环对象时如何通过 KEY 获取每个值?
- c# - 如何从 C# 中的另一个表单中清除文本框?
- wso2 - WSO2 api 管理器和端点 HTTPS
- linux - .desktop 文件在 centos8 上不可执行
- amazon-web-services - EC2 上的 Twig 模板缓存(AWS Auto Scaling)