django 讀寫分離

2021-10-23 05:51:31 字數 933 閱讀 2089

1.修改django的settings配置檔案

databases =

,'db2'

:}

2.執行資料庫同步指令,將表結構生成到db2資料庫中

python migrate -

-database db2

使用using指定使用哪個資料庫

defindex

(request)

: obj = models.id.objects.using(

"db2").

all(

)return render(request,

"index.html",)

在應用下建立py檔案,名字隨意

import random

class

router

:# 指定讀所使用的庫

defdb_for_read

(self,model,

**kwargs)

:#獲取當前model物件所在的應用名稱

#獲取當前操作的model物件的表名

model_name= model._meta.model_name

# 返回哪個庫名就使用哪個庫

return

'default'

# 隨機使用乙個資料庫

return random.choice(

['db1'

,'default'])

# 制定寫所使用的庫

defdb_for_write

(self,model,

**kwargs)

:return

'db2'

在settings中新增配置

database_routers =[,

]

Django實現讀寫分離

手動操作 queryset物件 ret book.objects.all using db1 自動做 通過配置,程式,讀去從庫讀,寫去主庫寫 寫乙個router 在專案路徑下建立db router.py 在裡面寫乙個類 class router1 def db for read self,model...

django資料庫讀寫分離

settings.py檔案中資料庫配置 用sqlite3 databases db2 用mysql databases db2 python manage.py makemigrations python manage.py migrate database db2 將default庫中的表結構同步...

Django配置資料庫讀寫分離

對 的資料庫作讀寫分離 read write splitting 可以提高效能,在django中對此提供了支援,下面我們來簡單看一下。注意,還需要運維人員作資料庫的讀寫分離和資料同步。我們知道在django專案的settings中,可以配置資料庫,除了預設的資料庫,我在下面又加了乙個db2。因為是演...