zoukankan      html  css  js  c++  java
  • django实现读写分离

    # 0 主从搭建好了
    
    # models.py
    from django.db import models
    
    
    class Book(models.Model):
        name = models.CharField(max_length=32)
        price = models.DecimalField(max_length=5, decimal_places=2)
    
    #1  在setting中配置
    DATABASES = {
        # 主库
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'lqz1',
            'USER': 'root',
            'PASSWORD': '123456',
            'HOST': '101.133.225.166',
            'PORT': 33307,
        },
        # 从库
        'db1': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'lqz1',
            'USER': 'root',
            'PASSWORD': '123456',
            'HOST': '101.133.225.166',
            'PORT': 33306,
        },
    }
    
    # 2 手动指定
        ####手动来做
        # 向default库写,主库
        # res=models.Book.objects.using('default').create(name='水浒传',price=33.4)
        # 去从库查
        # res=models.Book.objects.using('db1').all().first()
        # print(res.name)
     
    # 3 自动指定(写router和配置setting)
        class Router1:
            def db_for_read(self, model, **hints):
                return 'db1'
            def db_for_write(self, model, **hints):
                return 'default'
        
        # 在setting中注册
        # 注册一下
        DATABASE_ROUTERS = ['db_router.Router1',]
    # 4 以后只要是写操作,就会用default,只要是读操作自动去db1
    
    
    # 5 更细粒度()
    class Router1:
        def db_for_read(self, model, **hints):
            if model._meta.model_name == 'book':
                return 'db1'
            else:
                return 'default'
    
        def db_for_write(self, model, **hints):
            return 'default'
        
    # 6 在数据库迁移时,可以指定把哪个app的表结构迁移到哪个库
    python manage.py migrate app01 --database=default
  • 相关阅读:
    linux,windows kettle安装方法
    等待事件分类
    分析函数详细例子
    v$session中不同连接方式module,program的区别
    charles Glist发布设置
    charles 发布Glist
    charles 工具菜单总结
    charles 高级批量请求
    charles 批量重复请求/重复发包工具
    charles 重写工具/rewrite Srttings
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14887115.html
Copyright © 2011-2022 走看看