MySQL 支持很容易添加。在您的DATABASES
字典中,您将有这样的条目:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB_NAME',
'USER': 'DB_USER',
'PASSWORD': 'DB_PASSWORD',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}
从 Django 1.7 开始,您还可以选择使用 MySQL选项文件。您可以通过DATABASES
像这样设置数组来完成此操作:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
},
}
}
您还需要/path/to/my.cnf
从上面创建具有类似设置的文件
[client]
database = DB_NAME
host = localhost
user = DB_USER
password = DB_PASSWORD
default-character-set = utf8
使用 Django 1.7 中的这种新连接方法,了解建立连接的顺序很重要:
1. OPTIONS.
2. NAME, USER, PASSWORD, HOST, PORT
3. MySQL option files.
换句话说,如果您在 OPTIONS 中设置数据库的名称,这将优先于 NAME,这将覆盖 MySQL 选项文件中的任何内容。
如果您只是在本地机器上测试您的应用程序,您可以使用
python manage.py runserver
添加ip:port
参数允许您自己以外的机器访问您的开发应用程序。准备好部署应用程序后,我建议您查看djangobook上的部署 Django一章
Mysql 默认字符集通常不是 utf-8,因此请确保使用此 sql 创建数据库:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin
如果您使用Oracle 的 MySQL 连接器,您的ENGINE
行应如下所示:
'ENGINE': 'mysql.connector.django',
请注意,您首先需要在您的操作系统上安装 mysql。
brew install mysql (MacOS)
此外,python 3 的 mysql 客户端包已更改(MySQL-Client
仅适用于 python 2)
pip3 install mysqlclient