赞
踩
目录
第一步:创建虚拟环境
第二步:打开终端安装django
pip install django==3.2
第三步:创建项目
django-admin startproject django_readwrite .
第四步:添加django服务
第五步:启动django服务测试
第一步:创建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/
这时我们手动为从库添加一条数据用来测试读取。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。