雖然我們提供了資料庫的資訊,它知道怎麼連線資料庫,但問題是我們儲存裡面有很多模型,它不知道哪個模型存到哪個資料庫。這就要求我們自己來指定,也就是我們自己來實現乙個資料庫路由。乙個資料庫路由是乙個擁有4個方法的類,這四個方法是:
db_for_read(model, **hints)
對於該model 用哪個資料庫來讀。
db_for_write(model, **hints)
對於該model用哪個資料庫來寫。
allow_relation(obj1, obj2, **hints)
是否允許兩個物件關聯到資料庫。 db
這個資料庫進行
migrate
開啟routers.py檔案,做如下配置:
class sampledbrouter(object):
def db_for_read(self, model, **hints):
if model._meta.label == 'multidb.logger':
return 'logs' (如果是
logger'
的模型,就返回
logs
的資料庫。將資訊存到
lab2
)elif model._meta.label == 'multidb.loguser':
return 'users'(如果是
loguser'
的模型,就返回
users
的資料庫。將資訊存到
lab1
)return none
def db_for_write(self, model, **hints):
if model._meta.label == 'multidb.logger':
return 'logs'
elif model._meta.label == 'multidb.loguser':
return 'users'
return none
def allow_relation(self, obj1, obj2, **hints):
return true (關聯,存放到指定地方。)
if model._meta.label == 'multidb.logger':
return db == 'logs'(如果模型是
multidb.logger
,資料庫是
logs
,就可以遷徙)
elif model._meta.label == 'multidb.loguser':
return db == 'users'(如果模型是
multidb.loguser
,資料庫是
users
,就可以遷徙)
return none
Django中資料庫配置
在settings.py中儲存了資料庫的連線配置資訊,django預設初始配置使用sqlite資料庫。databases 使用mysql資料庫首先需要安裝驅動程式 pip install pymysql 在django的工程同名子目錄的 init py檔案中新增如下語句 from pymysql i...
Django如何連線mysql資料庫
sudo pip install mysql python顯示successfully installed mysql python 1.2.5 2 修改settings.py 配置資料屬性 如下 databases 修改完後進入專案目錄下執行python manage.py shell命令啟動互動...
Django實現資料庫長連線
開始接觸django只有乙個多月的時間,而且一開始完全是在修改別人的 乙個乙個問題的改,感覺沒怎麼自己沒太大的進步。最近來了乙個新的需求 讓django實現資料庫長連線 網上找了很多資料也沒找到說名django資料庫長連線的,django的文件也裡裡外外的找了一遍,可就是沒提到資料庫長連線的。於是開...