我在PHP/Laravel中开发了多租户SAAS应用程序,但最近我遇到了在Django/Python中开发一个应用程序的挑战.我仍在学习Django,我真的很喜欢Django休息框架(DRF).但我很难弄清楚下面突出显示的区域,如果有人表现出一些亮点,我会很高兴:
在我的Django项目中,我依赖于第三方应用程序,该应用程序使用已知模式在各种目录中生成SQLite缓存文件.
我想使用Django模型访问这些数据库,但显然我不能使用静态DATABASES
设置.
如何在任意路径上动态打开SQLite数据库?
编辑
正如Byron Ruth指出的那样,解决方案是将它django.db.connections
与using
QuerySet中的函数结合使用.
我必须在我的项目中使用多个数据库,但有一个问题。模型看不到我的数据库。
当我去 localhost:port/admin/app/accounts 它说我没有这样的表:帐户。模型寻找默认数据库。不是accounts.db 我该怎么做?
我在互联网上看到的内容中尝试了多种方法,但没有任何反应。
settings.py :
.....
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'accounts': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'accounts.db')
}
}
.....
models.py:
.....
class Accounts(models.Model):
email = models.TextField(blank=True, null=True)
phone = models.TextField(blank=True, null=True)
name = models.TextField(blank=True, null=True)
password = models.TextField(blank=True, null=True)
verify = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'accounts'
....
Environment:
Request Method: GET
Request URL: http://localhost:port/admin/hede/accounts/
Django Version: 1.11.23
Python Version: 2.7.15
Installed Applications:
['django.contrib.admin',
'django.contrib.auth', …
Run Code Online (Sandbox Code Playgroud)