新聞中心
首先告知 Django,你正在使用至少2個(gè)數(shù)據(jù)庫服務(wù)。通過 ?DATABASES ?配置來將指定的數(shù)據(jù)庫鏈接放入一個(gè)字典,以此來映射數(shù)據(jù)庫別名,數(shù)據(jù)庫別名是在整個(gè)Django中引用特定數(shù)據(jù)庫的一種方式。

成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計(jì),中牟網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:中牟等地區(qū)。中牟做網(wǎng)站價(jià)格咨詢:18980820575
可以選擇任意的數(shù)據(jù)庫別名,但是``?default?`` 別名具有特殊意義。當(dāng)沒有數(shù)據(jù)庫指定選擇的時(shí)候,Django 使用帶有 ?default ?別名的數(shù)據(jù)庫。
接下來一個(gè) ?settings.py? 片段,定義了2個(gè)數(shù)據(jù)庫——默認(rèn)的 PostgreSQL 數(shù)據(jù)庫和名叫 ?users ?的 MySQL 數(shù)據(jù)庫。
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'users': {
'NAME': 'user_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'priv4te'
}
}如果 ?default ?數(shù)據(jù)庫的設(shè)計(jì)在項(xiàng)目中沒有使用,那么你需要特別注意始終指定你所使用的數(shù)據(jù)庫。Django 需要定義 ?default? 數(shù)據(jù)庫,但如果沒有使用數(shù)據(jù)庫的話,參數(shù)字典可以置空。這樣,你必須為所有的模型,包括你所使用的任何 ?contrib ?和第三方 app 設(shè)置 ?DATABASE_ROUTERS?,所以不會有任何查詢路由到默認(rèn)數(shù)據(jù)庫。下面示例來講在默認(rèn)數(shù)據(jù)庫為空的情況下,如何定義兩個(gè)非默認(rèn)數(shù)據(jù)庫:
DATABASES = {
'default': {},
'users': {
'NAME': 'user_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'superS3cret'
},
'customers': {
'NAME': 'customer_data',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_cust',
'PASSWORD': 'veryPriv@ate'
}
}如果您嘗試訪問您尚未在 ?DATABASES ?設(shè)置中定義的數(shù)據(jù)庫,Django 將引發(fā) ?django.utils.connection.ConnectionDoesNotExist? 異常。
分享名稱:創(chuàng)新互聯(lián)Django4.0教程:Django4.0多數(shù)據(jù)庫-定義數(shù)據(jù)庫
標(biāo)題鏈接:http://fisionsoft.com.cn/article/cdhojse.html


咨詢
建站咨詢
