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 这步有可能会出现下面的错误:
文章图片
上面的图是借的,我用的是Mac,出现的错误是一样的,提示mysqlclient版本不对,修改出错的那个文件,就是蓝色显示的那个base.py。
打开django\db\backends\mysql\base.py,注释以下语句:
文章图片
请原谅我手懒,还在借图,不过解决问题的步骤没错。
operations.py 这个不上图了,系统提示:AttributeError: ‘str’ object has no attribute ‘decode’,主要体现是编码错误,继续修改。
文件路径:django\db\backends\mysql\operations.py
将decode修改为encode。
过了,没坑了。下课。
推荐阅读
- django-前后端交互
- py连接mysql
- 2019-01-18Mysql中主机名的问题
- MySql数据库备份与恢复
- Android|Android BLE蓝牙连接异常处理
- mysql|InnoDB数据页结构
- mysql中视图事务索引与权限管理
- MYSQL主从同步的实现
- MySQL数据库的基本操作
- springboot整合数据库连接池-->druid