DRF 一對多序列化與反序列化

2022-06-12 01:15:12 字數 2294 閱讀 9197

from django.db import models

# 建立老師模型

class teacher(models.model):

# 教師名稱

name = models.charfield(max_length=32,unique=true)

# 新增時間

addtime = models.datetimefield(auto_now_add=true)

class meta:

# 指定表名

db_table = 'teacher'

# 建立學生模型,乙個學生只能選擇乙個老師

class student(models.model):

# 學生名稱

name = models.charfield(max_length=32,unique=true)

# 新增時間

addtime = models.datetimefield(auto_now_add=true)

# 外來鍵 與teacher類繫結

teacher = models.foreignkey('teacher',on_delete=models.cascade)

class meta:

# 指定表名

db_table = 'student'

# 學生檢視

class studentview(apiview):

# 獲取資料

def get(self,request):

data = models.student.objects.all()

info = studentserializer(data,many=true)

return response()

# 新增資料

def post(self,request):

data = request.data

flag = models.student.objects.create(**data)

if not flag:

return response()

return response()

# 編輯資料

def put(self,request):

id = request.data.pop('id')

flag = models.student.objects.filter(id=id).update(**request.data)

if not flag:

return response()

return response()

# 刪除資料

def delete(self,request):

id = request.data.get('id')

student = models.student.objects.filter(id=id).delete()

if not student[0]:

return response()

return response()

序列化類 serializers.py

from rest_framework import serializers

from . import models

# 老師資料序列化

class teacherserializer(serializers.modelserializer):

class meta:

model = models.teacher

fields = '__all__'

# 學生資料序列化

class studentserializer(serializers.modelserializer):

class meta:

model = models.student

fields = '__all__'

二級路由 urls.py

from django.urls import path

from . import views

urlpatterns = [

path('teacher/',views.teacherview.as_view()),

path('student/',views.studentview.as_view()),

]

訪問位址

獲取老師名下有多少個學生

獲取學生的老師是誰?

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

序列化與反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 eg stooges array moe larry curly new serialize stooges print r new echo print r unserial...

序列化與反序列化

序列化是將物件處理為位元組流以儲存物件或傳輸到記憶體 資料庫或檔案。其主要目的是儲存物件的狀態,以便可以在需要時重新建立物件。相反的過程稱為反序列化。通過序列化,開發人員可以儲存物件的狀態,並在需要時重新建立該物件,從而提供物件的儲存以及資料交換。通過序列化,開發人員還可以執行類似如下的操作 通過 ...