700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Django项目配置mysql主从数据库实现读写分离

Django项目配置mysql主从数据库实现读写分离

时间:2018-11-26 18:01:54

相关推荐

Django项目配置mysql主从数据库实现读写分离

1、在配置文件中添加slave数据库的配置

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'HOST': '127.0.0.1',

'PORT': 3306, # 主

'USER': 'root', # 主数据库用户名

'PASSWORD': 'password', # 主数据库密码

'NAME': 'database' # 主数据库名字

},

'slave': {

'ENGINE': 'django.db.backends.mysql',

'HOST': '127.0.0.1',

'PORT': 3307, #从

'USER': 'root', # 从数据库用户名

'PASSWORD': 'password', # 从数据库密码

'NAME': 'database' # 从数据库名字

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

2、创建数据库操作的路由分发类

在项目的utils中创建db_router.py文件,并在该文件中定义一个db类,用来进行读写分离

class MysqlDBRouter(object):

"""数据库主从读写分离路由"""

def db_read(self, model, **hints):

"""读数据库"""

return "slave"

def db_write(self, model, **hints):

"""写数据库"""

return "default"

def allow_relation(self, obj1, obj2, **hints):

"""是否运行关联操作"""

return True

1

2

3

4

5

6

7

8

9

10

11

12

13

14

3、项目setting配置文件中配置读写分离路由

# 配置读写分离

DATABASE_ROUTERS = ['itme_name.utils.db_router.MysqlDBRouter'] # 指定你的路由分发类

————————————————

版权声明:本文为CSDN博主「Lovehanxiaoyan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:/Lovehanxiaoyan/article/details/103147505

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。