Skip to main content
 首页 » 编程设计

python之Django之多个数据库

2025年05月04日23EasonJim

所以我对整个 Django 数据库有些陌生,也许我只是不完全理解这里讨论的 Django 路由器: https://docs.djangoproject.com/en/dev/topics/db/multi-db/#database-routers 但对于我的生活,我无法弄清楚如何将两个数据库链接在一起。也许是因为我的设置不同?这两个数据库是单独的 Django 项目文件夹,并且都有单独的 Postgre 数据库。我认为问题可能来自于它们位于不同的文件夹中,而我没有正确包含路径名?

这是我现在拥有的:

设置.py:

DATABASES = { 
    'default': { 
        'ENGINE': 'django.db.backends.postgresql_psycopg2',  
        'NAME': 'ClothesWashers', 
        'USER': '', 
        'PASSWORD': '', 
        'HOST': '', 
        'PORT': '', 
        }, 
    'RECS': { 
        'ENGINE': 'django.db.backends.postgresql_psycopg2', 
        'NAME': 'RECS', 
        'USER': '', 
        'PASSWORD': '', 
        'HOST': '', 
        'PORT': '', 
        } 
} 

和

INSTALLED_APPS = ( 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'django_extensions', 
    'ClothesWasher_Purchaser', 
    ) 

和

DATABASE_ROUTERS = ['ClothesWashers.db_routers.RECS_Router',] 

db_routers.py:

class RECS_Router(object): 
    def db_for_read(self, model, **hints): 
        if model._meta.app_label == 'RECS_Data': 
            return 'RECS' 
        return 'default' 

我想要做的就是通过执行类似这样的操作来调用 RECS 数据库中的 RECS_Data 应用程序,以便我可以从中读取数据:

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'ClothesWashers.settings' 
from RECS_Data.models import RecsData 
g = RecsData._meta.fields 

谢谢任何愿意帮助我的人!

请您参考如下方法:

我想您可以使用 using 读取辅助数据库。

像这样尝试。

i.e RecsData.using("RECS")._meta.fields 

有关更多信息,请参阅此处 https://docs.djangoproject.com/en/dev/topics/db/multi-db/#manually-selecting-a-database