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', ]
    
    # 以后自动读写分离
    # 多从库负载
    # 分库分表
    
    posted @ 2023-08-29 17:02  星空看海  阅读(13)  评论(0编辑  收藏  举报