使用django rest框架来解析服务器响应

时间:2017-09-03 14:00:40

标签: python django-rest-framework

我有DRF。我想与requests库进行get调用,获取json,使用我的一个序列化程序解析它并保存到数据库。

是否可以将json数组传递给序列化程序并保存到db?

1 个答案:

答案 0 :(得分:1)

如果需要,请求已经为您提供dict,因此无需解析。只需调用.json()并将其直接传递给序列化程序即可。

保存对象是一个单独的问题;您可以在序列化程序中执行此操作,也可以使用序列化程序中的验证数据在视图中手动执行此操作。

resp = requests.get('http://my-service')
if resp.status_code == 200:        
    ser = MySerializerClass(data=resp.json()) # the .json() parses to a dict
    ser.is_valid(raise_exception=True)

    # save using the serializer, if you've implemented there
    ser.save() 

    # -or- do it manually
    data = ser.validated_data
    MyModel.objects.create(name=data['name', etc)

请注意,嵌套序列化程序是一个完全不同的主题,并且不容易实现。就个人而言,我会使用transactions

从validated_data手动创建对象(在方法中或在.save中)