# 轉載請留言聯系
用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)