django+mysql读写分离_使用django做mysql读写分离

一、先创建一个django项目

1.在settings.py文件修改数据库配置,主从库都要配置

#主库

‘default‘: {‘ENGINE‘: ‘django.db.backends.mysql‘,‘NAME‘: ‘test‘,‘USER‘: ‘root‘,‘PASSWORD‘: ‘123456‘,‘HOST‘: ‘101.132.167.242‘,‘PORT‘: 33307,

},#从库

‘slave‘: {‘ENGINE‘: ‘django.db.backends.mysql‘,‘NAME‘: ‘test‘,‘USER‘: ‘root‘,‘PASSWORD‘: ‘123456‘,‘HOST‘: ‘101.132.167.242‘,‘PORT‘: 33306,

}

2.urls.py设置路径

urlpatterns =[

url(r‘^index/‘, views.index),

]

3.views.py

from django.shortcuts importHttpResponse

defindex(request):return HttpResponse(‘ok‘)

4.建表models.py

from django.db importmodels

classBook(models.Model):

title=models.CharField(max_length=32)

price=models.IntegerField()

ss=models.CharField(max_length=32,default="66")

5.数据库迁移

python manage.py makemigraions

72d0c5f4064f4d9ae33bcfac4fba9bf7.png

python manage.py migrate app名称 --databse=配置文件数据名称的别名

12e39297729d10d3c4604ce8790f9006.png

主库和从库都能查询用django创建的表

af9bcdff62a77b1cf7a45fa73effad2b.png

6.往数据库内插一条数据 (设置之后访问index页面,就会往book表中插入一条数据)

from django.shortcuts importrender,HttpResponsefrom app01.models importBook#Create your views here.

defindex(request):#往主库里插一条数据

Book.objects.using("default").create(title="xx",price=10)return HttpResponse(‘ok‘)

主从库都插入了数据

df7481fe0d35f6e8a6acb53e2edef969.png

7.前面选定插入数据库都是使用using,还有一种自动操作的方式

在根目录下创建router.py文件

classRouter1:def db_for_read(self, model, **hints): #读取数据只用从库"""Attempts to read auth models go to auth_db."""

return ‘slave‘

def db_for_write(self, model, **hints): #写入数据只用主库"""Attempts to write auth models go to auth_db."""

return ‘default‘

在setting.py文件配置    DATABASE_ROUTERS = [‘router.Router1‘,]

e1d14b47c1bdb5de4eff9a76172db17a.png

以后往主库中插入数据或者从库中读取数据就不用再指明使用哪个数据库

from django.shortcuts importrender,HttpResponsefrom app01.models importBook#Create your views here.

defindex(request):#往主库里插一条数据

Book.objects.create(title="yy",price=20)return HttpResponse(‘ok‘)

原文:https://www.cnblogs.com/wangcuican/p/12195441.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值