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

时间:2021-2-27 作者:admin

最近在写后端处理代码的时候,有时候会出现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)

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

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。