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()

改完以上基本就可以了,下面的坑更深一些,希望你不会遇到。

后续可能遇到的坑

执行python manage.py makemigrations时出现了两个坑。

base.py

这步有可能会出现下面的错误:
Django连接Mysql在MAC环境下踩过的坑_第1张图片
上面的图是借的,我用的是Mac,出现的错误是一样的,提示mysqlclient版本不对,修改出错的那个文件,就是蓝色显示的那个base.py。
打开django\db\backends\mysql\base.py,注释以下语句:
Django连接Mysql在MAC环境下踩过的坑_第2张图片
请原谅我手懒,还在借图,不过解决问题的步骤没错。

operations.py

这个不上图了,系统提示:AttributeError: ‘str’ object has no attribute ‘decode’,主要体现是编码错误,继续修改。
文件路径:django\db\backends\mysql\operations.py
decode修改为encode

过了,没坑了。下课。

你可能感兴趣的:(Django连接Mysql在MAC环境下踩过的坑)