稍微記錄下Django2.2使用MariaDB和MySQL遇到的坑


現在演示一下整個流程吧

1.創建項目和應用

PS:你也可以使用PyCharm直接創建項目

2.注冊應用

先把剛剛創建的應用添加進去

3.配置MySQL或者MariaDB

4.PyMySQL替換默認的MySQLdb

Django使用的MySQLdb對Python3支持力度不夠,我們用PyMySQL來代替

這句話其實就是兼容代碼,這樣你導入mysqldb也相當於導入PyMySQL了

5.創建數據庫

Django除了默認的sqlite會幫你創建數據庫外(只創建對應的表),其他數據庫都不會幫你創建的,所以你需要自己創建

6.django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

如果你的Django是最新的2.2,PyMySQL也是最新的0.93的話,你會發現Django會報錯:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

這個是Django對MySQLdb版本的限制,我們使用的是PyMySQL,所以不用管它

7.AttributeError: 'str' object has no attribute 'decode'

再繼續運行發現又冒了個錯誤:AttributeError: 'str' object has no attribute 'decode'

這個就不能亂改了,所以先調試輸出下:

發現是對字符串進行了decode解碼操作:(一般對字符串進行編碼,二進制進行解碼)

解決也很簡單,改成encode即可

8.再運行

再運行就沒錯誤了

但也沒有什么東西

發現了個后台貌似也登錄不上

9.生成對應的數據庫

先創建一個用戶的模型類

生成對應的數據庫(項目里可以寫個build.sh的腳本批量化執行)

這個有點類似Net的CodeFirst了

10.生成對應的后台管理頁面

設置后台語言,默認是英語的

創建超級管理員

在admin中注冊對應的模型類

這時候運行就可以管理對應的頁面了

登錄頁面

后台管理主頁

這時候就可以創建修改UserInfo類了

我隨便創建了幾個用戶

這種對象直接tostring(str(xxx))會導致顯示不人性化,如果想知道顯示的字段也很簡單:

然后刷新下列表頁就ok了(如果手動輸入命令則不用重啟服務器,通過PyCharm運行的需要重新啟動下)

是不是輕輕松松就解決了對數據庫表的增刪改查?這就是Django的強大之處

逆天點評:Net的MVC最擅長的就是快速生成前端頁面和對應的驗證,而Python的Django最擅長的就是快速生成后台管理頁面。這兩個語言都是快速建站的常用編程語言(項目 V1~V2 階段)


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com