我是参考官方文档说明的:django关于mysql的说明。百度到的都是坑货,都说装什么MySQLdb的,然后装了又一大堆问题,找不到C的编译器之类的。所以说,官方文档才是正道!!!
mysql现有三种引擎:
- MySQLdb(不支持Python 3)
- mysqlclient(是MySQLdb的副本,专门支持Python 3.2以上的)
- MySQL connector/Python
根据推荐,使用mysqlclient是最好的选择,所以我只想介绍mysqlclient,我的服务器配置为Ubuntu 15.04。
安装引擎(当然,你得先自己装好mysql,就一条命令的事):
sudo apt-get install python3-dev
sudo apt-get install python-dev libmysqlclient-dev
下面是在Django中的配置:
- 假设你的项目名称为jacket,那么在jacket/jacket/settings.py中修改配置(注意为了保密,一般都不要把账号和密码直接放在settings中,还有就是要使用INNODB作为存储的引擎):
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
'init_command': 'SET storage_engine=INNODB',
},
}
}
# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8
然后是建好数据库(因为django是用utf8的):
CREATE DATABASE <dbname> CHARACTER SET utf8;
还要要注意设置这个:USE_TZ = False,其他注意事项详细请看原文档。