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

如今演示一下整個流程吧前端

1.建立項目和應用

PS:你也可使用PyCharm直接建立項目mysql

2.註冊應用

先把剛剛建立的應用添加進去sql

3.配置MySQL或者MariaDB

4.PyMySQL替換默認的MySQLdb

Django使用的MySQLdb對Python3支持力度不夠,咱們用PyMySQL來代替數據庫

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

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,因此不用管它
ui

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 階段)

相關文章
相關標籤/搜索