django实现读写分离
时间:2021-08-24
本文章向大家介绍 django实现读写分离,主要包括 django实现读写分离使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
mysql主从搭建好的条件下
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 自动指定(在项目根目录下建立一个 db_router.py的文件,写router和配置setting)
class Router1:
def db_for_read(self, model, **hints):
return 'db1' #指定读就是用db1操作
def db_for_write(self, model, **hints):
return 'default' #指定写就是用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': #只要是关于这个模型的操作全部去db1中去操作
return 'db1'
else:
return 'default'
def db_for_write(self, model, **hints):
return 'default'
6 在数据库迁移时,可以指定把哪个app的表结构迁移到哪个库
python manage.py migrate app01 --database=default
原文地址:https://www.cnblogs.com/niuyeji648/p/15181986.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 目标检测 | Anchor free之CornerNet网络深度解析
- 手把手教你 3 分钟搞定个人网站 http 免费升级到 https
- 设计模式(四):通过做蛋糕理解构建模式及Android中的变种
- 如何入门使用腾讯云物联网开发平台 IoT Explorer,开发一盏智慧城市的智能灯?
- 知道吗?容器镜像也可以延迟拉取!
- ansible超详细讲解,值得收藏
- 实战渗透 - 一个怎么够?我全都要!
- 详解 Numpy 中的视图和副本
- 详解 matplotlib 中的两种标注方法
- 混搭 TypeScript + GraphQL + DI + Decorator 风格写 Node.js 应用
- 彻底搞懂闭包,柯里化,手写代码,金九银十不再丢分!
- Kubernetes控制器--副本集ReplicaSet
- Awesome Kubernetes 系列:第一期
- Mongodb多键索引之数组文档
- 在 Cocos Creator 里画个炫酷的雷达图