[英]Retrieve data from Django API and store it in database
我用 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.