Djangoの単一のアプリケーションで複数のデータベースを設定する方法は?

Djangoでは、1つのアプリに複数のデータベースを設定することができます。1つのアプリに複数のデータベースを設定する手順は以下の通りです:

  1. settings.pyファイルに複数のデータベース接続情報を定義します。
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    },
    'db1': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database1',
        'USER': 'username1',
        'PASSWORD': 'password1',
        'HOST': 'localhost',
        'PORT': '3306',
    },
    'db2': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database2',
        'USER': 'username2',
        'PASSWORD': 'password2',
        'HOST': 'localhost',
        'PORT': '3306',
    },
}
  1. アプリのmodels.pyファイルで使用するデータベースを指定します。
class Model1(models.Model):
    field1 = models.CharField(max_length=100)

    class Meta:
        app_label = 'myapp'
        db_table = 'model1'
        using = 'db1'

class Model2(models.Model):
    field2 = models.CharField(max_length=100)

    class Meta:
        app_label = 'myapp'
        db_table = 'model2'
        using = 'db2'

この例では、Model1とModel2はそれぞれdb1とdb2の2つのデータベースを指定しています。

  1. データベース操作をビュー関数や他の場所で行う必要がある場合、usingメソッドを使用してどのデータベースを使用するかを指定できます。
from myapp.models import Model1, Model2

def my_view(request):
    # 使用db1数据库
    model1_objects = Model1.objects.using('db1').all()

    # 使用db2数据库
    model2_objects = Model2.objects.using('db2').all()

上記手順により、1つのアプリに複数のデータベースを設定し、モデルやビュー関数などでどのデータベースを使用するかを指定できます。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds