Django REST Framework的序列化器是什么?


# 轉載請留言聯系

 

用Django開發RESTful風格的API存在着很多重復的步驟。詳細可見:https://www.cnblogs.com/chichung/p/9933861.html

過程往往都是,(1)把到前端請求的過來的json字符串,然后通過json.loads轉換為字典,字典在轉換為對象,保存在數據庫。

(2)返回的時候呢,都是先把對象查詢出來,然后轉換為字典,再通過JsonResponse轉換為json字符串並且返回給前端。

接口的開發,基本就是在重復這兩個動作,而且這兩個動作語句特別多,如果有一樣東西可以簡單地完成這兩個動作就好了。還真的有,那就是Django REST Framework(簡稱DRF)!

 

  • DRF的環境安裝與配置

安裝:

pip install djangorestframework

配置:

在settings.py:

INSTALLED_APPS = [
    ...
    'rest_framework', ]

 

  • 序列化器的序列化與反序列化

那么,DRF是怎樣實現這種操作的呢?就是用序列化器。

首先要明白兩個概念,序列化與反序列化:

序列化:將程序中的一個數據結構類型轉換為其他格式(JSON、XML等),例如:將Django中的模型類對象裝換為JSON字符串,這個轉換過程我們稱為序列化。簡單來說:對象 -> 字典 -> json

反序列化:將其他格式(JSON、XML等)轉換為程序中的數據,例如將JSON字符串轉換為Django中的模型類對象,這個過程我們稱為反序列化。簡單來說:json -> 字典 -> 對象

我們開頭講的第(1)種動作,就可以用反序列化完成。第(2)種動作,就可以用序列化完成。

 

  • 序列化與反序列化的作用

1.序列化的作用:

1.對象 -> 字典

使用Django框架查詢部門數據:

 

用序列化查詢部門數據:(簡化上圖的步驟2)

 

2.反序列化的作用:

1.json -> 字典 -> 對象

2.校驗參數的合法性(可以校驗傳過來的json轉換成字典后,能否滿足數據庫的字段約束)

3.校驗通過后,可以在數據庫中保存或修改數據

 

使用Django框架新增或修改部門:

使用反序列化新增或修改部門:(簡化上圖的步驟3、4)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM