23.Django_基礎階段綜合演練總結

設計總結

  1. 校驗用戶數據
    例如傳入參數是否存在,格式是否正確,是否可重複等判斷;
  2. 將前端傳入的請求數據轉換(json格式)轉換爲模型類對象;反序列化;
    • 反序列化:
      將格式如json,xml轉換爲程序中的類型;
      將json格式的字符串轉換爲Django中的模型類對象;
         #1. 先將json格式數據轉換爲嵌套字典列表
		json_data = request.body.decode('utf-8')
        python_data= json.loads(json_data,encoding='utf-8')
        #2.將字典轉換爲模型類對象
        project = Projects.objects.create(**python_data)      
  1. 操作數據庫;
  2. 將模型類對象轉換爲響應的數據(json格式)
    • 序列化:
      將程序中的類型轉換爲json,xml;
      Django中的模型類對象轉換爲json格式的字符串;
#將其餘數據格式轉爲前端需要的json數據類型
return JsonResponse(one_dict, safe=False)

1. 序列化

首先思考下:內存中的字典、列表、集合以及各種對象,如何保存到一個文件中?

  1. 設計一套協議,按照某種規則,把內存中的數據保存到文件中,文件是一個個字節序列。所以必須把數據額轉換爲字節序列,輸出到文件,這就是序列化,反之,從文件的字節 序列恢復到內存中,就是反序列化。
  2. 反序列化則相反
    序列化在Json中:
  3. json().dump:把數據轉成json格式字符串並寫入文件
  4. json().dumps:讀取文件數據,並轉成json格式字符串

2.增刪改查的步驟


  • 校驗請求參數 -> 反序列化查詢到的數據 -> 保存數據 -> 將保存的對象序列化並返回

  • 判斷要刪除的數據是否存在 -> 執行數據刪除

  • 判斷要修改的數據是否存在 -> 校驗請求參數 -> 反序列化查詢到的數據 -> 保存數據 -> 將保存的數據序列號並返回

  • 查詢數據庫 -> 將查詢到的數據序列化並返回

痛點

  • 代碼冗餘極其嚴重,不符合優開發風格(代碼能少寫就少寫)
  • 數據校驗非常麻煩,且可複用性差
  • 編碼沒有統一的規範,雜亂無章的感覺
  • 僅支持json格式的傳參,不支持form表單傳參
  • 僅能返回json格式的數據,其他類型不支持
  • 列表頁視圖沒有分頁,過濾,排序功能
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章