django实现读写分离
目录
# 第一步:配置文件配置多数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
},
'db1': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db1.sqlite3',
}
}
# 第二步:手动读写分离
Book.objects.using('db1').create(name='西游记')
# 第三步,自动读写分离
写一个py文件,db_router.py,写一个类:
class DBRouter(object):
def db_for_read(self, model, **hints):
# 多个从库 ['db1','db2','db3']
return 'db1'
def db_for_write(self, model, **hints):
return 'default'
# 第三步:配置文件配置
DATABASE_ROUTERS = ['mysql_master_demo.db_router.DBRouter', ]
# 以后自动读写分离
# 多从库负载
# 分库分表