零之前言
在Django2.2版本上使用mysql会出现一个小问题,而在2.1.4版本就不会出现问题。所以这篇教程着重于对于django2.2版本的调教
末尾更新新库mysqlclient
一.安装驱动
安装我们的pymysql
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql
然后在我们的app里的init.py添加以下代码:
import pymysql
pymysql.install_as_MySQLdb()
二.修改Settings
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 设置使用mysql数据库
'NAME': 'hdm72190820_db', # 指定数据库
'USER': 'hdm72190820', # 用户名
'PASSWORD': '',
'PORT': 3306, # 端口号
'HOST': 'hdm72190820.my3w.com' # 数据库所在主机的ip
}
}
三.修改Django
如果版本是2.1的没有问题,2.2的就会出现以下问题:
File "/home/kanna/.local/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 36, in <module>
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
解决办法是:跟着它提示的目录(蓝色字体)在python的site-packages/django/db/backends/mysql里找到以下两个文件:base.py 和 operations.py
1.修改base.py
用你喜欢的编辑器打开它,注释掉35 36行,也就是:
#if version < (1, 3, 13):
# raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
2.修改operations.py
把146行decode改为encode
如果找不到直接搜索也行,改好后的代码如下:
query = query.encode(errors='replace')
以上两步注意保存!
四.完成
我们再来migrate试试
成功!!!!
五.新方法mysqlclient
前者在linux或windows上都可以。这个方法在win或ubuntu测试ok
在ubuntu上要先安装:
sudo apt-get install libmysqlclient-dev
然后安装:
pip install mysqlclient
win上直接后者即可。