MySQL support很容易添加.在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开始,您还可以 Select 使用MySQL option files.您可以通过如下方式设置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.
换句话说,如果在选项中设置数据库的名称,它将优先于名称,这将覆盖MySQL选项文件中的任何内容.
如果只是在本地机器上测试应用程序,可以使用
python manage.py runserver
添加ip:port
参数允许您自己的计算机以外的计算机访问您的开发应用程序.一旦您准备好部署您的应用程序,我建议您看一下djangobook上关于Deploying Django的章节
Mysql默认字符集通常不是utf-8,因此请确保使用以下sql创建数据库:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin
如果你用的是Oracle's MySQL connector,你的ENGINE
行应该是这样的:
'ENGINE': 'mysql.connector.django',
请注意,首先需要在操作系统上安装mysql.
brew install mysql (MacOS)
此外,Python3的mysql客户端包也发生了变化(MySQL-Client
只适用于Python2)
pip3 install mysqlclient