关于python使用django创建mysql表报错问题的解决

Posted gongezh519618

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于python使用django创建mysql表报错问题的解决相关的知识,希望对你有一定的参考价值。

django 默认使用的数据库是sqlite

在项目中通常用mysql作为数据库,这就需要对mysql进行一些基本配置

1.在与项目名同名的文件夹下找到setting文件,找到

# DATABASES =
# ‘default‘:
# ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
# ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
#
#   并将其注释

2.在下面加上mysql的配置

DATABASES =
‘default‘:
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘: ‘xxx‘,
‘USER‘:‘root‘,
‘PASSWORD‘:‘root‘,
‘HOST‘:‘localhost‘,
‘PORT‘:‘3306‘,

3.如果遇到如下报错:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

解决方案:

首先 pip install pymysql

再在项目名同名的文件夹下的__init__.py文件中

加入

import pymysql
pymysql.install_as_MySQLdb()

接下来如果遇到这个错误提示

raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.‘ % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

解决方案:

找到报错路径,如:E:\\PycharmProjects\\s14_day20\\venv\\Lib\\site-packages\\django\\db\\backends\\mysql\\base.py

找到文件将第35行 36行注释

技术图片

再将operations文件的第146行:

query = query.decode(errors=‘replace‘) 改为query = query.encode(errors=‘replace‘)

 

 至此 问题已经得到解决

以上是关于关于python使用django创建mysql表报错问题的解决的主要内容,如果未能解决你的问题,请参考以下文章

mysql创建数据表报错#1064,求解答

mysql创建表报错:ERROR 1118 (42000) ...Row size too large (> 8126)

mysql创建表报错:ERROR 1118 (42000) ...Row size too large (> 8126)

MySQL数据库创建表报错的解决方案

问题使用 xlwings操作Excel表报错

MySQL用户新建表报1227异常