Django 连接 MySQL 数据库及常见报错解决

3 篇文章 0 订阅
3 篇文章 0 订阅

一、终端或者数据库管理工具连接 MySQL ,并新建项目所需数据库

  1. 终端或者数据库管理工具连接 MySQL ,并新建项目所需数据库
CREATE DATABASE drf_shop CHARACTER SET utf8;

创建数据库一定要将字符编码设置为utf8,很多错误就是没正确设置编码导致的!

二、安装访问 MySQL 的 Python 模块

pip install pymysql

三、Django 相关配置

工程文件夹(settings平级的文件夹)/init.py

from pymysql import install_as_MySQLdb
install_as_MySQLdb()

settings.py 中替换默认 DATABASE 相关配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # django 数据库后台
        'NAME': 'drf_shop',  # 连接数据库的名称
        'USER': 'root',  # 用户名
        'PASSWORD': '123456',  # 密码
        'HOST': '127.0.0.1',  # 主机
        'PORT': '3306',  # 端口
    }
}

至此,就可以像使用SQLite一样使用MySQL了!

四、可能会遇到的报错

报错1: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.

raise ImproperlyConfigured('mysqlclient 1.x.xx or newer is required; you have %s.' % Database.__version__)

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.x.xx or newer is required; you have 0.x.x.

这里 xx 表示版本,报错版本可能不同但解决方法时一样的

解决方法:

/Python37(python安装目录)/Lib/site-packages/django/db/backends/mysql/base.py,注释掉以下内容:

#if version < (1, 3, 13):
#		raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

报错2:AttributeError: ‘str’ object has no attribute ‘decode’

报错内容:

File "xx\Python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'

解决方法:

打开
xx\Python37\lib\site-packages\django\db\backends\mysql\operations.py
把146行的 decode 修改为 encode 即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值