Django5+React18前后端分离开发实战05 序列化
在Django和React前后端分离的开发实践中,序列化和反序列化是一个重要环节。以下是一个简单的例子,展示了如何在Django中创建一个序列化器,并在React中使用axios发送请求和处理响应。
Django (serializers.py)
from rest_framework import serializers
from .models import MyModel
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = '__all__'
Django (views.py)
from rest_framework import generics
from .serializers import MyModelSerializer
from .models import MyModel
class MyModelListCreate(generics.ListCreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
React (MyComponent.jsx)
import axios from 'axios';
const fetchData = async () => {
try {
const response = await axios.get('/api/mymodel/');
console.log(response.data);
// 处理数据
} catch (error) {
console.error(error);
}
};
const sendData = async () => {
try {
const data = { /* 要发送的数据 */ };
const response = await axios.post('/api/mymodel/', data);
console.log(response.data);
// 处理创建的对象
} catch (error) {
console.error(error);
}
};
// 使用fetchData或sendData
在这个例子中,我们定义了一个序列化器MyModelSerializer
,用于序列化从Django模型MyModel
中查询出来的数据。然后在Django的视图中,我们使用了ListCreateAPIView
来处理对应的HTTP GET和POST请求。在React组件中,我们使用axios库发送GET和POST请求到Django后端,并处理响应数据。这样前后端就能够通过序列化和反序列化来交换数据。
评论已关闭