当前位置: 首页>编程语言>正文

django 使用 mysql 依赖 django配置mysql数据库

python==3.7.0

django==2.0

pymysql==0.9.3

 

一、配置数据库
Django默认数据库为sqlite
若该项目要使用mysql数据库,需要更改配置

1、项目下setting.py中添加如下代码



import pymysql

pymysql.install_as_MySQLdb()

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xxx',           # 数据库库名(需提前创建好数据库)
        'USER': 'xxx',            # 用户名
        'PASSWORD':'***',     # 连接密码
        'HOST':'xx.xx.xx.xx',   # 主机
        'PORT':'3306',             # mysql端口
    }
}

# 将初始DATABASES注释或删除



2、进行数据迁移

进入项目地址(与manage.py同级),执行如下命令



python manage.py makemigrations # 创建 迁移
python manage.py migrate  # 执行 迁移



3、执行完毕后,可在mysql指定的数据库中看到已经完成迁移的数据表,至此,mysql数据库配置完成

 

二、数据表的创建、删除、修改(业务层面)

1、数据表的创建



# 在应用下创建数据表首先需要创建应用,并且注册应用,才可以创表
# 在目标应用下的model.py中写入所需创建的类,如在Usermanagement应用下编写如下代码

from django.db import models

# Create your models here.

class User(models.Model):
    id=models.CharField(max_length=50,primary_key=True)
    user_id=models.CharField(max_length=50)
    user_name=models.CharField(max_length=50)
    password=models.CharField(max_length=255)
    user_mail=models.CharField(max_length=50)
    user_status=models.IntegerField()



进入项目地址(与manage.py同级),执行如下命令



python manage.py makemigrations # 创建 迁移
# 此时会在应用下的migrations文件夹中生成0001_initial.py文件

python manage.py migrate  # 执行 迁移
# 此时会在数据库中创建名为Usermanagement_User的数据表



django 使用 mysql 依赖 django配置mysql数据库,django 使用 mysql 依赖 django配置mysql数据库_django 使用 mysql 依赖,第1张

 





至此,数据表的创建结束

 

2、数据表的删除

分两步:①手动进入数据库,删除目标数据表;②在django_migrations表中删除该表的注册信息

django 使用 mysql 依赖 django配置mysql数据库,django 使用 mysql 依赖 django配置mysql数据库_python_02,第2张

至此,该数据表删除成功

 

3、数据表的修改

 



# 还是在model.py中修改已经创建好的类
# 添加或者删除或者修改字段
# 完成后执行如下命令

python manage.py makemigrations
# 删除、修改字段会直接提示结果



# 添加字段会提示是否加入默认值

此时可以选择1,并且键入默认值''即可

或者在model.py中新增的字段代码中加入默认值,再执行python manage.py makemigrations,代码如下

from django.db import models

# Create your models here.

class User(models.Model):
    id=models.CharField(max_length=50,primary_key=True)
    user_id=models.CharField(max_length=50)
    user_name=models.CharField(max_length=50)
    password=models.CharField(max_length=50)
    user_status=models.IntegerField()
    xx=models.CharField(max_length=255,default='')   # 加入default=''
python manage.py migrate  # 执行 迁移
# 此时会更新数据库中的表



 至此,数据表中字段修改成功

django 使用 mysql 依赖 django配置mysql数据库,django 使用 mysql 依赖 django配置mysql数据库_django 使用 mysql 依赖_03,第3张

django 使用 mysql 依赖 django配置mysql数据库,django 使用 mysql 依赖 django配置mysql数据库_python_04,第4张

 

数据表的每次修改都会记录在migrations文件夹下,同时也会存储在django_migrations表里

 

注:


python manage.py makemigrations
python manage.py migrate

# 以上代码会执行全局model.py
# 若想精确到执行某个app,可修改命令,如下

python manage.py makemigrations app_name
python manage.py migrate app_name


https://www.xamrdz.com/lan/5et1932675.html

相关文章: