一、django的資料庫配置
(一)修改settings.py檔案關於資料庫的配置:
django預設使用sqlite:
# django預設的資料庫庫,sqlit配置再新增乙個資料庫:仿照「default」的格式直接新增:databases =
}
databases = ,注意:如果想要使用mysql,需要進行一下配置:'db2': ,
}
1. 編輯專案資料夾下的settings.py
databases =2. 編輯專案資料夾下的__init__.py : 由於mysql在django中預設驅動是mysqldb, 而該驅動不適用於python3, 因此,我們需要更改驅動為pymysql}
# **實現:3. 顯示sql語句 ,前面我們說了orm是高層的物件導向的操作,轉換為低層的sql語句,如果想在終端列印對應的sql語句,可以在setting.py中加上日誌記錄import pymysql
pymysql.install_as_mysqldb()
**實現:(二)、修改好資料庫配置之後,在models.py檔案裡建立表,之後進行資料庫遷移工作:logging = ,
},'loggers': ,}}
python manage.py makemigrations # 在migrations資料夾下生成記錄,遷移前檢查二、讀寫分離python manage.py migrate # 真正執行資料庫遷移命令,該命令執行之後建立表
(一)手動讀寫分離
1. 在使用資料庫時,通過.using(db_name)來手動指定要使用的資料庫
優點:不需要進行其餘的配置,只需要通過.using(db_name)來手動指定要使用的資料庫就行。
缺點:在大量的對資料庫進行操作之後,此種方法繁瑣
# **實現(二)自動讀寫分離models.products.objects.using('default').create(prod_name='熊貓公仔', prod_price=12.99)
return httpresponse('寫入成功')
通過配置資料庫路由,來自動實現,這樣就不需要每次讀寫都手動指定資料庫了。資料庫路由中提供了四個方法。這裡這裡主要用其中的兩個:def db_for_read()決定讀操作的資料庫,def db_for_write()決定寫操作的資料庫。
定義router類
新建myrouter.py
指令碼,定義router類:
class router:配置routerdef db_for_read(self, model, **hints):
return 'db2'
def db_for_write(self, model, **hints):
return 'default'
在settings.py
中指定database_routers
database_routers = ['myrouter.router',]一主多從方案
class router:分庫分表def db_for_read(self, model, **hints):
"""讀取時隨機選擇乙個資料庫
"""import random
return random.choice(['db2', 'db3', 'db4'])
def db_for_write(self, model, **hints):
"""寫入時選擇主庫
"""return 'default'
class router:**def db_for_read(self, model, **hints):
return 'db1'
return 'db2'
def db_for_write(self, model, **hints):
return 'db1'
Django ORM 資料庫設定和讀寫分離
一 django的資料庫配置 一 修改settings.py檔案關於資料庫的配置 django預設使用sqlite django預設的資料庫庫,sqlit配置 databases 再新增乙個資料庫 仿照 default 的格式直接新增 databases db2 如果想要使用mysql,需要進行一下...
Django ORM資料庫操作
django框架功能齊全自帶資料庫操作功能,由於工作中設計巨量的api介面,需要乙個很好的web後端服務框架,django給了莫大的幫助。本文主要介紹django的orm框架 我們一般對資料庫的使用的認識是 django的orm操作本質上會根據對接的資料庫引擎,翻譯成對應的sql語句 所有使用dja...
django ORM 資料庫連線配置
django 中連線資料,可以使用pymysql 也可以使用django 自帶的框架orm 用pymysql連線mysql資料庫查詢資料 1.import pymysql 2.建立連線 3.獲取游標 4.執行sql語句 5.獲取資料 6.關閉游標 7.關閉連線 物件關係對映 類 資料表 屬性 字段 ...