django - 从 Django API 检索数据并将其存储在数据库中
问题描述
我用 django 创建了一个 API
我想做的是从我的 django API 中获取数据并将其存储在我的数据库中。
序列化程序.py
from rest_framework import serializers, generics
from Usersapi.models import Userdata
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Userdata
fields = '__all__'
视图集.py
from Usersapi.models import Userdata
from .serializers import UserSerializer
from rest_framework import viewsets
class UserViewSet(viewsets.ModelViewSet):
queryset = Userdata.objects.all()
serializer_class = UserSerializer
主要-> urls.py
from django.contrib import admin
from django.urls import include, path
from rest_framework.urlpatterns import format_suffix_patterns
from .router import router
urlpatterns = [
path('admin/', admin.site.urls),
# path('',include('Usersapi.urls')),
path('client/',include('clientside.urls')),
path('api/', include(router.urls))
]
这是我试图从 API 客户端检索数据的地方——>views.py
from django.shortcuts import render
import coreapi
import json
from django.views import generic
import io
from rest_framework.parsers import JSONParser
def home(request):
client = coreapi.Client()
response = client.get('http://127.0.0.1:8000/api/Usersapi/1/')
stream = io.BytesIO(response)
data = JSONParser().parse(stream)
name = data.get("name")
age = data.get("age")
gender = data.get("gender")
user = UserReceived.objects.create( name = name, age= age, gender = gender)
user.save()
return render(request, 'books.html')
此代码不起作用。如何从 (' http://127.0.0.1:8000/api/Usersapi/1/ ') 检索数据并将其存储在我的 models.py 即数据库中
客户端 --> models.py
from django.db import models
class UserReceived(models.Model):
name = models.CharField(max_length=100)
age = models.PositiveIntegerField()
gender = models.CharField(max_length=50)
解决方案
您的问题是 corapi 客户端已经返回了一个有序的字典。
这将起作用:
def home(request):
client = coreapi.Client()
data = client.get('http://127.0.0.1:8000/api/usersapi/1/')
name = data.get("name")
age = data.get("age")
gender = data.get("gender")
user = UserReceived.objects.create(name=name, age=age, gender=gender)
user.save()
return HttpResponse(f"OKAY, got and saved user {name}")
我在这里创建了一个最小的工作示例: https ://github.com/CarliJoy/MWE_SO_59668515
推荐阅读
- mysql - 使用 MySQL sql_mode=only_full_group_by 获取组的第一行
- python - Django 应用程序:运行服务器时出现“找不到 URL”错误
- lambda - 教会数词中 m 的 0 次方
- batch-file - 批处理文件中的权限移动性
- sql-server - 如何在我的聚合 SQL 查询中正确考虑订单返回?
- css - 字体真棒 5 伪类不适用于我的工具包
- java - JsonMappingException 杰克逊 getOriginalMessage 为空
- php - MySQL 连接 dyld 修复
- c# - 同步融合 Blazor 动态查询不起作用
- python - 将计算值传递给 Django 模板