1:序列化:
將數據結構或對象狀態轉換為可以存儲或傳輸的格式(如JSON、XML)的過程。
在Web開發中,通常是將模型實例(或查詢集)轉換為JSON格式,
以便通過HTTP響應發送給客戶端。
序列化(Serialization):
將?復雜數據類型(如 Django 模型實例/查詢集)?→ 轉換為?可傳輸/存儲的格式(如 JSON、XML)。
核心目的:將數據轉換為客戶端可讀的格式(如 API 響應)。
實現方式:
Django REST Framework (DRF)(推薦):
from rest_framework import serializersclass BookSerializer(serializers.ModelSerializer):class Meta:model = Bookfields = ['id', 'title', 'author'] # 指定字段# 序列化模型實例
book = Book.objects.get(id=1)
serializer = BookSerializer(book)
json_data = serializer.data # 輸出: {'id':1, 'title':'Django Guide', 'author':'Alice'}
2.?反序列化(Deserialization):
????????將?客戶端傳入的數據(如 JSON)?→ 轉換為?Django 模型實例/復雜數據類型。
核心目的:驗證并轉換數據供服務端使用(如創建/更新數據庫記錄)。
DRF 反序列化(帶數據驗證):
# 客戶端傳入的 JSON 數據
incoming_data = {'title': 'New Book', 'author': 'Bob'}# 1. 驗證數據 + 轉換為模型實例
serializer = BookSerializer(data=incoming_data)
if serializer.is_valid(): # 驗證數據是否符合規則book_instance = serializer.save() # 創建/更新模型實例
else:errors = serializer.errors # 獲取錯誤信息# 2. 更新現有實例
book = Book.objects.get(id=1)
serializer = BookSerializer(book, data=incoming_data, partial=True) # partial=True 允許部分更新