[Django] Django(五) 配置mysql数据库

安装mysql及其驱动

Django支持mysql5.5及其以上版本

sudo apt-get install mysql-server

mysqlclient是python链接MySql数据库驱动,可通过pip命令安装:

pip install mysqlclient

Django项目中配置mysql

为一个Django项目配置mysql数据库,在项目的settings.py中配置,在这个配置文件中,数据库配置相关如下:

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

可以看到,Django中默认数据库是sqlite3,如果配置为mysql,只需在DATABASE中配置即可,有两种方式可以进行配置:

方式一
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'username',
        'PASSWORD': '123456',
        'NAME': 'mydemo'
    }
}
* ENGINE:表示数据库
* USER:表示数据库创建的用户
* PASSWORD:表示该用户的密码
* NAME:表示数据库
方式二

这种方式是创建一个数据库配置文件,在项目配置文件中读取该配置文件即可:

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/home/work/Django/my.conf',
        },
    }
}
# my.conf
[client]
database = mydemo
user = username
password = 123456
default-character-set = utf8

根据项目配置信息创建数据库

在项目配置文件中,我们配置了对应的数据库名、用户和密码,因此就需要创建对应的配置。

创建数据库
CREATE DATABASE mydemo charset=utf8
创建用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'

username:表示用户名
localhost:表示主机
password:表示该用户登录密码

给用户授权
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password'

ALL PRIVILEGES:表示授予用户所有权限;
ON *.* :表示所有数据库中的表;
TO之后表示用户名和密码。

注意:这种方式比较简单粗暴,但不给普通用户授予所有权限,其他方式配置数据库请参考其他资料

迁移数据库

Django中通过以下命令来迁移数据库,在每次创建Model时,执行该命令,在数据库中生成对应的表:

$ python manage.py makemigrations
$ python manage.py migrate

猜你喜欢

转载自blog.csdn.net/fightfightfight/article/details/80013032