我正在尝试从外部api获取特定数据,并将其存储到django中的表中。我能够提取所有数据,但是如何仅将特定数据发送到表。
我的view.py文件:
def post(self, request):
api_key = "API-KEY"
response = requests.get('https://api.themoviedb.org/3/movie/popular?api_key={}'.format(api_key))
data = json.loads(response.text)
serializer = GetListSerializers(data = data)
# serializer = GetListSerializers(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我的Model.py文件:
class GetList(models.Model):
movieid = models.IntegerField()
title = models.CharField(max_length=10)
def __str__(self):
return self.title
我的serializer.py文件:
class GetListSerializers(serializers.ModelSerializer):
class Meta:
model = GetList
fields = ('movieid', 'title')
api的输出是一个字典,即
{
"total_results": 10000,
"total_pages": 500,
"page": 1,
"results": [
{
"original_title": "Ad Astra",
"vote_average": 6,
"id": 419704,
"poster_path": "/xBHvZcjRiWyobQ9kxBhO6B2dtRI.jpg",
"backdrop_path": "/p3TCqUDoVsrIm8fHK9KOTfWnDjZ.jpg",
"adult": false,
"overview": "decades before boldly faced emptiness and silence in search of the unknown.",
"original_language": "en",
"genre_ids": [
12,
18,
9648,
878,
53
],
"video": false,
"vote_count": 1749,
"release_date": "2019-09-17"
},....
我想向表发送ID和标题。
答案 0 :(得分:1)
这是使用Django模型在数据库中存储数据的方式。
title = data['results']['original_title']
GetList.objects.create(title=title)
此外,您可以跳过GetList模型上的id字段,因为所有Django模型都具有默认的自动递增的'id'字段。我还建议将 GetList 重命名为 Movie ,以提高可读性。