1. 程式人生 > 實用技巧 >Django 內建序列化

Django 內建序列化

serializers

   Django中提供了非常便捷的序列化元件,特別是對前後端分離專案來說使用非常的方便。

   如果我們想對QuerySet進行序列化,那麼使用這個是非常棒的選擇!

from django.core import serializers
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.core import serializers
from app01 import models

def test(request):
    if request.method == "POST":
        user_queryset = models.UserTest.objects.all()
        res = serializers.serialize("json",user_queryset) # 序列化型別,序列化內容
        return HttpResponse(res)

    return render(request,"base.html",locals())

  

<body>
    <button type="button">獲取資料</button>
</body>
<script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js'></script>
<script>
    window.onload = (() => {
        document.querySelector("button").addEventListener("click", (ele) => {
            $.ajax({
                url: "http://127.0.0.1:8000/",
                type: "post",
                dataType: 'JSON',
                success: (res) => {
                    console.log(res);
                },
                error:()=>{
                    console.log("失敗");
                }
            })

        })
    })
</script>

   格式化出的資料:

[{
	"model": "app01.usertest",
	"pk": 1,
	"fields": {
		"name": "Yunya",
		"age": 18,
		"gender": false
	}
}, {
	"model": "app01.usertest",
	"pk": 2,
	"fields": {
		"name": "Jack",
		"age": 19,
		"gender": true
	}
}, {
	"model": "app01.usertest",
	"pk": 3,
	"fields": {
		"name": "Tom",
		"age": 18,
		"gender": false
	}
}, {
	"model": "app01.usertest",
	"pk": 4,
	"fields": {
		"name": "Marin",
		"age": 16,
		"gender": true
	}
}]