1. 程式人生 > 實用技巧 >指定資料庫讀寫分離操作

指定資料庫讀寫分離操作

方式一:是視圖裡面用using方式可以進行指定到哪個資料讀寫
from django.shortcuts import render,HttpResponse
from app01 import models
def index(request):

    models.UserType.objects.using('db1').create(title='普通使用者')
  # 手動指定去某個資料庫取資料
    result = models.UserType.objects.all().using('db1')
    print(result)

    return HttpResponse('
...') 方式二:寫配置檔案 class Router1:   # 指定到某個資料庫取資料 def db_for_read(self, model, **hints): """ Attempts to read auth models go to auth_db. """ if model._meta.model_name == 'usertype': return 'db1' else: return 'default'    # 指定到某個資料庫存資料
def db_for_write(self, model, **hints): """ Attempts to write auth models go to auth_db. """ return 'default' 再寫到配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }, 'db1
': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } DATABASE_ROUTERS = ['db_router.Router1',]