1.什么是序列化組件
在django中,自帶一個序列化組件,它是用來將資料進行整理、轉化成特定的為一個特定的格式(比如json資料格式),然后傳輸給前端,以便前端對資料進行處理操作,
2.為什么要用序列化組件
當我們從資料庫取出一些資料時,我們需要將資料轉成特定的格式,比如串列套字典的形式,然后將這些資料序列化成json的格式傳輸給前端,這就需要我們在后端把資料庫里的資料每一個都遍歷取值出來,這樣比較麻煩,而且當資料欄位很多的時候,我們很多遍歷出來!代碼如下:
后端代碼:
from django.http import JsonResponse # 匯入JsonResponse模塊
from app01 import models
def ab_ser(request):
user_queryset = models.User.objects.all() # 查詢所有的資料物件
user_list = [] # 創建一個空串列
for user_obj in user_queryset: # 回圈出每一個資料物件
tmp = { # 利用物件點的方式取出每一個對應元素來充當欄位的值
'pk':user_obj.pk,
'username':user_obj.username,
'age':user_obj.age,
'gender':user_obj.gender
}
user_list.append(tmp) # 添加到串列中
return JsonResponse(user_list, safe=False) # 轉換成json格式回傳給前端頁面(safe屬性為ture則表示只能傳dict字典的形式,因為現在為串列的形式,所以改為False)
前端代碼:
<body>
{% for user_obj in user_list %}
<p>{{ user_obj }}</p>
{% endfor %}
</body>
所以,這時候django給我們提供了一個自帶的序列化組件,它能夠將從資料庫取出的資料,自動整合成一個特定的格式!大大減少了我們的作業!
3.django自帶的序列化組件
自帶的序列化模塊為serializes
# 格式:serializers.serialize('序列化成什么格式',資料)
# 示例:
from django.core import serializers # 匯入
def ab_ser(request):
user_queryset = models.User.objects.all()
res = serializers.serialize('json',user_queryset) # 序列化成json格式資料
"""會自動幫你將資料變成json格式的字串 并且內部非常的全面"""
return HttpResponse(res) # 回傳給前端頁面
'''
[{"model": "app01.user",
"pk": 1,
"fields": {"username": "gary", "age": 19, "gender": 1}},
{"model": "app01.user",
"pk": 2,
"fields": {"username": "tom", "age": 20, "gender": 2}},
{"model": "app01.user",
"pk": 3,
"fields": {"username": "kevin", "age": 29, "gender": 3}},
{"model": "app01.user",
"pk": 4,
"fields": {"username": "jack", "age": 38, "gender": 4}}]
'''
# 我們可以看到它幫我們處理的資料是非常全面的,
# 告訴了我們這個資料來自于哪一個應用下的拿一張表,還告訴了我們對應的主鍵值,和詳細資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/501790.html
標籤:其他
