DRF中根據具體的應用指定資料庫

2021-10-02 00:12:52 字數 1701 閱讀 5408

在我們使用drf時,有時會需要使用多個資料庫,但是預設只能使用乙個,我們可以通過修改配置檔案進行達到實現多個資料庫的方式,從而達到一種簡單的負載均衡。
databases =

'default':,

'sdxydb'

:}

class

dbrouter

(object):

"""資料庫路由、讀寫配置"""

defdb_for_read

(self, model,

**hints)

:"""

設定從哪個表讀取資料

"""'sdxydb'

:return

"sdxydb"

return

none

defdb_for_write

(self, model,

**hints)

:"""

設定寫入資料到哪個表

"""'sdxydb'

:return

"sdxydb"

return

none

defallow_migrate

none

,**hints)

:"""

指定遷移資料庫時與專案中的資料庫位址一致

:param db:

:param model_name:

:param hints:

:return:

"""'sdxydb'

:return db ==

'sdxydb'

else

:return

none

[

'db.dbrouter'

],否則會出現找不到db檔案問題

#在檔案裡面新增這句話,意思是找到自己編寫的資料庫路由。

#然後我們就實現了具體的應用對應具體的資料庫

from django.db import models

class

test

(models.model)

user = models.charfield(db_column=

'websource'

, max_length=

255, blank=

true

, null=

true

)class

meta

: managed =

true

db_table =

'jbxx'

'sdxydb'

資料庫遷移

python manage.py makegrations

預設的:python manage.py migrate

自己的: python manage.py migrate --database=sdxydb

查詢 預設的 author.objects.all()

自己的:author.objects.using('sdxydb').all()

反向生成models

python manage.py inspectdb > models.py

反向生成models時 需要在具體的應用下 並指定輸出到models.py檔案才可以成功

指定陣列中的資料比大小

比大小 需求 1.要求定義a k 13張牌 分別代表 1 13點分數 a,2,3,4,5,6,7,8,8,10,j,q,k 2.本人和電腦 每人隨機分三張牌顯示在控制台 要求純隨機 3.然後比較你和電腦三張牌的點數之和的大小,分出誰是贏家,並贏了多少點,輸了多少點或打平 思路 1,定義兩個字串陣列,...

給指定資料庫表中新增指定列

存在actor表,包含如下列資訊 create table ifnot exists actor actor id smallint 5 not null primary key,first name varchar 45 not null,last name varchar 45 not null...

mysql匯出指定欄位或指定資料到檔案中

使用mysqldump把mysql資料庫的資料匯出到檔案中還是挺方便的 比如說要匯出baijunyao資料庫 mysqldump u使用者名稱 p 資料庫名 表名 匯出的檔名 mysqldump uroot p baijunyao baijunyao.sql bash copy 匯出baijunya...