安装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