在 Django 4.0 中,你可以使用多数据库配置来连接和操作多个数据库。这种功能允许你在一个 Django 项目中使用多个数据库,每个数据库可以有不同的角色,例如主数据库、只读数据库等。以下是在 Django 中配置和使用多个数据库的基本方法:

在 settings.py 中配置多个数据库
# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'default_db',
        'USER': 'your_username',
        'PASSWORD': 'your_password',
        'HOST': 'localhost',
        'PORT': '5432',
    },
    'other_db': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'other_db.sqlite3',
    },
}

在上面的示例中,我们配置了两个数据库,一个是默认数据库 (default),使用 PostgreSQL,另一个是另一个数据库 (other_db),使用 SQLite。

使用多个数据库

在 Django 中,你可以在模型中指定要使用的数据库,或者在查询中动态选择数据库。

在模型中指定数据库:
# models.py
from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=100)

class MyModelOnOtherDB(models.Model):
    name = models.CharField(max_length=100, db_table='other_db_table', database='other_db')

在上面的示例中,MyModel 使用默认数据库,而 MyModelOnOtherDB 明确指定了另一个数据库。

在查询中动态选择数据库:
from django.db import connections

# 获取数据库连接
other_db_connection = connections['other_db']

# 在查询中使用另一个数据库
with other_db_connection.cursor() as cursor:
    cursor.execute('SELECT * FROM other_db_table')
    results = cursor.fetchall()

在上面的示例中,我们获取了名为 other_db 的数据库连接,并使用该连接执行原始 SQL 查询。

使用多个数据库可以帮助你更好地组织和分离数据,但也需要小心确保在跨数据库操作时保持数据一致性。在某些情况下,可能需要考虑使用数据库路由或其他方法来处理数据库的选择和查询。


转载请注明出处:http://www.zyzy.cn/article/detail/7176/Django