Django 手把手教你搭建MYSQL多数据源 实现读写分离

目录

一、创建3.2版本的Django项目

二、配置MYSQL多数据源

三、实现读写分离


一、创建3.2版本的Django项目

第一步:创建虚拟环境

第二步:打开终端安装django

pip install django==3.2

第三步:创建项目

django-admin startproject django_readwrite .

第四步:添加django服务

第五步:启动django服务测试

二、配置MYSQL多数据源

第一步:创建apps/account用来管理用户相关业务

右键创建apps/account目录

输入命令创建app:

python manage.py startapp account apps/account

右键创建urls.py用作路由:

打开apps.py文件,将代码修改:

注册app组件,打开settings.py

第二步:安装MYSQL相关包

pip install pymysql

pip install mysqlclient

第三步:_init_.py文件加入如下代码

import pymysql
pymysql.install_as_MySQLdb()

第四步:settings.py配置MYSQL数据库信息

DATABASES = {
    "default": {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django-readwrite',  # 数据库名字
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '127.0.0.1',  # ip
        'PORT': 3306
    },
    "bak": {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django-readwrite-bak',  # 数据库名字
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '127.0.0.1',  # ip
        'PORT': 3306
    },
}

第五步:手动创建两个库

第六步:models.py中创建实体类

from django.db import models

class UserInfo(models.Model):
    name = models.CharField(verbose_name="姓名", max_length=32)
    age = models.IntegerField(verbose_name="年龄")

第七步:生成表

python manage.py makemigrations    # 找到所有已注册的app中的models.py中的类读取 -> migrations配置

python manage.py migrate --database=default
python manage.py migrate --database=bak

现在两个库都有相同的表了,我们创建的实体类对应的表是account_userinfo。

第八步:编写方法访问数据库

打开account/views.py

from django.shortcuts import render, HttpResponse
from apps.account import models

# 获取用户(读操作)
def getUser(request):
    users = models.UserInfo.objects.using("bak").all()
    for user in users:
        print(user.name)
    return HttpResponse('获取用户')

# 创建用户(写操作)
def createUser(request):
    models.UserInfo.objects.using("default").create(name="编程抗氧化", age=20)
    return HttpResponse('创建用户')

第九步:编写路由

django_readwrite/urls.py

from django.urls import path, include

urlpatterns = [
    path('account/', include("apps.account.urls")),
]

account/urls.py

from django.urls import path
from apps.account import views

urlpatterns = [
    path('getUser/', views.getUser),
    path('createUser/', views.createUser),
]

三、实现读写分离

第一步:项目右键创建utils目录,目录下创建router.py文件

class DemoRouter(object):

    # 读操作都走bak数据库
    def db_for_read(self, model, **hints):
        return "bak"

    # 写操作都走default数据库
    def db_for_write(self, model, **hints):
        return "default"

第二步:settings.py配置此路由文件

DATABASE_ROUTERS = ['utils.router.DemoRouter']

第三步:启动服务测试

访问:http://127.0.0.1:8000/account/createUser/

这时我们手动为从库添加一条数据用来测试读取。

再访问:http://127.0.0.1:8000/account/getUser/

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现 Django + Pyecharts + MySQL后端分离,需要按照以下步骤进行: 1. 后端 Django + MySQL实现 首先,根据需求设计数据库表结构,并使用 Django 自带的 ORM 操作数据库。在 Django 中,可以使用 Django REST framework 进行 API 接口的开发,将数据以 JSON 或 XML 格式返回给前端。 2. 前端 Pyecharts 的实现 在前端页面中,使用 Pyecharts 进行图表的绘制。Pyecharts 是一个基于 Echarts 的 Python 图表库,可以轻松绘制各种类型的图表。需要注意的是,Pyecharts 并不是一个前端框架,而是一种将 Python 代码转换成 JavaScript 代码的工具。 3. 前后端分离的实现 在前后端分离的架构中,前端和后端是分离的两个部分,通过 API 接口进行通信。在 Django 中,可以使用 Django REST framework 进行 API 接口的开发,并将数据以 JSON 格式返回给前端。前端通过 AJAX 调用这些 API 接口,获取数据并绘制图表。 4. 部署 最后,需要将 Django 后端和前端页面部署到不同的服务器上,以实现后端分离。可以使用 Docker 进行部署,将 Django 应用和前端页面分别打包成 Docker 镜像,并使用 Docker Compose 进行部署管理。 总的来说,实现 Django + Pyecharts + MySQL后端分离需要对 Django、Pyecharts、MySQLDjango REST framework 等技术有一定的了解和实践经验。同时,需要注意前后端分离架构的设计和实现,以确保系统的稳定性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我向往自由

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值