Django 配置mysql数据库

Django中是默认使用SQLite数据库的,在settings.py文件中的默认配置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

但是,有的时候,我们需要配置数据库为mysql,该怎么办呢?

1.创建mysql数据库

######(1)检查本机是否安装Mysql
ctrl+r 快捷键打开cmd
输入 services.msc
Django 配置mysql数据库_第1张图片

查看服务列表中有无mysql服务
Django 配置mysql数据库_第2张图片
如果有服务,那就代表已经安装了。如果没安装,请参考安装mysql链接:
https://www.cnblogs.com/zhangkanghui/p/9613844.html

好了,确保有安装mysql之后,我们就来创建数据库:

ctrl+r 快捷键,打开运行窗口,输入cmd,点击确定
Django 配置mysql数据库_第3张图片
命令行里输入:
mysql -uroot -p123456
create database proName

mysql -uroot -p123456 创建一个数据库,用户名为root,密码为123456
proName 为表名

(2)如果想在命令行里执行 mysql命令(非必须,根据自己需要),则需要配置环境变量
我的电脑–》属性—》高级系统设置–》环境变量–》新建环境变量
变量名:MYSQL_HOME
变量值:E:\soft\after\mysql-8.0.18-winx64\ (此为你mysql的安装路径。可从服务的属性里查看)

Django 配置mysql数据库_第4张图片

2.配置setting 文件

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        # 'NAME': os.path.join(BASE_DIR, 'db.mysql'),
        'NAME': 'proName',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

3.使用pymysql模块连接mysql数据库

python环境默认模块MySQLdb只适用于python2.x,pip装不上。它在python3版本的替代品是pymysql:import pymysql
Python3不支持MySQLdb,可用pymysql代替
因此:
将Django默认使用MySQLdb连接数据库 更改为 使用pymysql连接数据库

习惯在与项目同名的文件夹下的 init.py 文件中添加

import pymysql
pymysql.install_as_MySQLdb()

安装命令仅供参考:
pip install mysqlclient
pip install pymysql (如果使用python3.x版本时,用pymysql替换MySQLdb,或者用mysqlclient替换MySQLdb。)

Python3.x版本:Pip install mysqlclient
Python2.x 版本:pip install mysql-python

配置完成,以下步骤为数据迁移

4.在app下的models.py下写model

ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中

体现在django中就是在models.py中,书写类,创建表数据
对应关系如下:
类 —》 表
对象 —》 数据行(记录)
属性 —》 字段

class Author(models.Model):
    name = models.CharField(max_length=32) # varchar(32)
    pswd = models.CharField(max_length=32)  # varchar(32)

参考链接:
https://www.cnblogs.com/maple-shaw/articles/9323320.html

5.执行数据库迁移的命令

python manage.py makemigrations #为改动创建迁移记录;
python manage.py migrate  #将操作同步到数据库。

你可能感兴趣的:(Django)