Django2中数据迁移的时候报错与Mysql版本不匹配的解决办法及推荐Django2的一个不错的中文使用文档

今天周六,在准备十月一号之后社团纳新开课我的第一次课讲的内容,以前因为内存太小只有4G想用但是不敢用Pycharm,现在好了,加了个8G的内存条,如愿以偿用上了Pycharm,装的是最新版本,从第一次学python到现在,算起来是第二次用Pycharm,用的特别生疏,但是不得不说的是这个软件代码提示功能确实强大的让我害怕,通过使用pycharm,我能明显的感觉出来,我落后时代了,我学的那套Django1的用法,有挺多的地方Django2是不同的。
这里推荐一个Django2的使用文档: 点击链接查看

本篇文章,将会介绍几个常用的Django2的新特点及我自己亲身经历的棘手的错误的解决办法:

【1】数据迁移的操作,要求服务器端mysqlclient必须为高版本——即mysqlclient大于1.3.13版本

错误提示为:
django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or 
newer is required you have 0.9.3

这个问题的解决办法有两种:
(1)将Django的版本降为2.14以下的版本
(不推荐这样,不过如果你喜欢也可以这么做)
(2)更改 base.py 的配置
(重点讲这种方法怎么实现)

第二种方法,修改base.py文件 的配置
根据自己Python的安装路径,可以找到 Django目录下的 Mysql目录中有一个base.py的文件(这里需要提示一下怎么找到这个文件的存放路径每个人的base.py所在的目录都不同我们可以通过Ubantu中的一条命令来搜索它的存放路径:locate base.py),在寻找这个文件的时候,我用了很多时间,因为在搜索它的存放路径的时候,我遇到了好几条干扰性很强的路径,比如说下面这条路径:
(1)/usr/local/lib/python3.6/dist-packages/django/contrib/gis/db/backends/mysql/base.py(错误路径)

(2)/usr/local/lib/python3.6/dist-packages/django/db/backends/mysql/base.py(正确路径)
那么,我是怎么判断这几条路径哪个是正确的哪个是错误的呢?这里,靠一个一个的尝试才能知道,一个路径一个路径切换,然后VIM打开base.py文件来判断。
判断的依据是下面这张图,我们需要做的就是,找到这个文件,注释掉35/36行的内容,这样,就可以解决报错问题:在这里插入图片描述
【2】上面问题解决以后,紧接着会有这样一个报错:AttributeError: 'str' object has no attribute 'decode',它的解决办法是:我们需要找到Django目录下的Mysql下的operations.py文件,然后更改它的配置:
和上面说的找文件的方法一样,ubantu命令:locate operations.py,也是,找到N条路径,比如这里我找的分辨不出来的路径:
(1)/home/caiden_mical/.local/lib/python3.6/site-packages/django/db/backends/mysql/operations.py (错误路径)

(2)/home/caiden_mical/.local/lib/python3.6/site-packages/django/contrib/gis/db/backends/mysql/operations.py (错误路径)

(3)/usr/local/lib/python3.6/dist-packages/django/contrib/gis/db/backends/mysql/operations.py (错误路径)

(4)/usr/local/lib/python3.6/dist-packages/django/db/backends/mysql/operations.py (路径正确)
这里,我们也是通过尝试打开operations.py文件的办法找正确的路径,判断依据是下面这张图,我们是通过修改这个文件里第146行encode(修改之前为decode)来解决报错的:在这里插入图片描述

【3】关于url配置与Django1的不同之处(下图为Django2中文使用文档截图,点击链接查看原网页):在这里插入图片描述
【4】关于Url反向解析与Django1的不同(下图为Django2中文使用文档截图,点击链接查看原网页):在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值