我是靠谱客的博主 细心耳机,最近开发中收集的这篇文章主要介绍python3连接mysql报错_Python3替换MySQLdb,使用pymysql代替(python3连接mysql)(python3创建django默认数据库)...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python3安装django初始化数据库报错

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

百度得到的结论是python3不支持mysqldb了,可以使用pymysql来代替

处理方法

找到(是默认生成的那个模块,就是用命令生成django项目的时候默认生成的第一个模块)自己项目模块的__init__.py文件,

e9c90a84e4026fc60585d2b174e38596.png

配置一下pymysql就好。

import pymysql

pymysql.install_as_MySQLdb()

接着报错

说mysqlclient版本太低

File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 37, in 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.

参考解决连接

django 使用PyMySQL连接mysql

解决Django配置pymysql因版本报错的解决方案

主要是修改一下文件的内容,这里记录一下mac的安装路径。

MAC电脑python默认的安装路径

base.py的文件路径

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql

修改一下内容,注释掉这两行

a6fbaf9c96da9ae2776686a817048483.png

编码问题报错(这个问题为我没遇到,先记录一下,说不定以后用得着)

AttributeError: ‘str’ object has no attribute ‘decode’

解决方法

修改文件operations.py,这个文件的路径和上面的那个文件的路径上一样的。

#找到operations.py文件(146行),将decode改为encode

#linux vim 查找快捷键:?decode

if query is not None:

query = query.decode(errors='replace')

return query

#改为

if query is not None:

query = query.encode(errors='replace')

return query

再试试

python3 manage.py migrate

如果成功了的话会数据库会生成这些表,这些表其实也可以不用的。

具体看文档 编写你的第一个 Django 应用,第 2 部分

095b8ec302703ff4e581baced1d48923.png

最后

以上就是细心耳机为你收集整理的python3连接mysql报错_Python3替换MySQLdb,使用pymysql代替(python3连接mysql)(python3创建django默认数据库)...的全部内容,希望文章能够帮你解决python3连接mysql报错_Python3替换MySQLdb,使用pymysql代替(python3连接mysql)(python3创建django默认数据库)...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部