Django后端处理post请求的request.body中数据

最近在写后端处理代码的时候,有时候会出现post请求获取不到数据的情况,仔细观察一下。可能和views的函数书写风格不同有关。这里记录一下两种不同风格的后端获取数据的代码。

两种不同风格的解释可以参考这篇文章------>传送门

FBV

基于函数的视图

我们需要将request.body从json对象转换为字典。

@csrf_exempt
def getMeaning(request):
    if request.method == "POST":
        json_str = request.body 
        json_dict = json.loads(json_str) 
        key = json_dict.get("key", None) 

CBV

基于类的视图

我们直接从request.data获取数据即可。

class AchievementViewSet(ModelViewSet):

    # 添加竞赛
    @action(methods=['post'], detail=False)
    @csrf_exempt
    def add_competition(self, request, *args, **kwargs):
        name = request.data.get('name', None)

上面仅仅是基于本人的经验,如果有错误之处,麻烦大家交流指正。

你可能感兴趣的:(小技巧以及经验,前后端开发,post,django,后端处理请求数据)