社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django如何连接多个数据库?

saurabh Nema • 5 年前 • 1736 次点击  

我想连接到Django中的多个数据库,并在视图中显示每个表中选定的记录。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53742
 
1736 次点击  
文章 [ 3 ]  |  最新文章 5 年前
RIYAJ MULLA
Reply   •   1 楼
RIYAJ MULLA    5 年前

不必每次都创建新的连接,您可以连接到服务器并创建一个原始查询来跨多个数据库选择数据并创建所需数据的视图,如下例所示

from django.db import connection
cursor = connection.cursor()
cursor.execute('CREATE VIEW vCombinedRecords AS
SELECT * FROM DB1.dbo.MyTable
UNION ALL
SELECT * FROM DB2.dbo.MyTable')

上面的方法可以更快地建立到多个数据库的新连接

干杯!!

funnydman
Reply   •   2 楼
funnydman    5 年前

怎么 documentations 描写:

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

然后指定从哪一个检索数据:

persons = Person.objects.using('default').all()
# or
persons = Person.objects.using('users').all()  
amit
Reply   •   3 楼
amit    5 年前

django支持多个数据库

DATABASES = {
  'default': {
     'NAME': 'dbname',
     'ENGINE': 'django.db.backends.postgresql',
     'USER': 'psqluser',
     'PASSWORD': 'password'
  },
  'users': {
      'NAME': 'dbname1',
      'ENGINE': 'django.db.backends.mysql',
      'USER': 'mysqluser',
      'PASSWORD': 'yourpassword'
  }
}

您可以按照以下方式使用迁移

./manage.py migrate --database=users

class Model:
   name = models.TextField(max_length=100)
   description = models.TextField(max_length=200)
   units = models.TextField(max_length=500)

   class Meta:
       app_label = 'users'

更多的资源你可以访问这个 link