Django连接Mysql在MAC环境下踩过的坑

练习Python的Django编程,由于要存储同学的通讯录,想着以后还得用,所以舍弃了起步的sqlite3,直接连接Mysql。
查了网上的资料,都是MySQLdb啥的,Python 3都不支持了好不好?强烈建议技术网站要做到定时清理过期博客,让人浪费时间啊!
好了闲话少叙,Mac下Django连接Mysql要做到以下几步:
一是安装Mysql Connect 对,其他的都不对,挨个试过了,系统terminal下执行安装语句就行了,就这个:

pip install mysql-connector

二是修改setting.py数据库连接 setting.py在你的Project目录下面。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_test',#你的数据库名字, 'USER':'root',# 你的用户名 'PASSWORD':'123456',# 你的密码 'HOST':'localhost',# 缺省数据库主机地址 'PORT':'3306'# 端口号 } }

三是修改__init__.py Project目录下的__init__.py,不是app的。你打开是空的,输入以下代码:
import pymysql pymysql.install_as_MySQLdb()

改完以上基本就可以了,下面的坑更深一些,希望你不会遇到。
后续可能遇到的坑 【Django连接Mysql在MAC环境下踩过的坑】执行python manage.py makemigrations时出现了两个坑。
base.py 这步有可能会出现下面的错误:
Django连接Mysql在MAC环境下踩过的坑
文章图片

上面的图是借的,我用的是Mac,出现的错误是一样的,提示mysqlclient版本不对,修改出错的那个文件,就是蓝色显示的那个base.py。
打开django\db\backends\mysql\base.py,注释以下语句:
Django连接Mysql在MAC环境下踩过的坑
文章图片

请原谅我手懒,还在借图,不过解决问题的步骤没错。
operations.py 这个不上图了,系统提示:AttributeError: ‘str’ object has no attribute ‘decode’,主要体现是编码错误,继续修改。
文件路径:django\db\backends\mysql\operations.py
将decode修改为encode。
过了,没坑了。下课。

    推荐阅读