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中文使用文檔截圖,點擊鏈接查看原網頁):在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章