python - 无法使用 Python 请求将所有数据存储到 Django 数据库中
问题描述
无法将所有数据存储到 Django 数据库中。它从开放的 API 打印正确的数据列表,但不存储。
但是,如果我在(client.py)中给出 data1 的直接值,例如:
data1 = { 'employee_name':'姓名', 'employee_salary':'20000', 'employee_age':'22', 'profile_image':' ' }
然后它将上述字典值存储到 Django 数据库中。但是我使用请求获取的数据是一个列表。它在 cmd 中打印但不存储在 DB 中。
client.py file
def get_alldata():
url1 = "http://dummy.restapiexample.com/api/v1/employees"
url = "http://127.0.0.1:8000/employee/"
my_response = requests.get(url1)
token = get_token()
header = {'Authorization' : f'Token {get_token()}'}
data1 = [ my_response.json() ]
for d in range(len(data1)):
payload = data1[d]
res = requests.post(url, data=data1[d] , headers=header )
print(data1[d])
get_alldata()
这是 Api.py 文件,其中包含在 django rest 框架中使用序列化程序的 get 和 post 方法。
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.authtoken.models import Token
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework import status
from employee.serializers import *
class EmployeeAuthentication(ObtainAuthToken):
def post(self,request, *args, **kwargs):
serializer = self.serializer_class(data=request.data, context={'request':request})
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
token , created = Token.objects.get_or_create(user=user)
return Response(token.key)
class EmployeeView(APIView):
def get(self, request):
model = Employee.objects.all()
serializer = EmployeeSerializer(model, many=True)
return Response(serializer.data)
def post(self, request):
serializer = EmployeeSerializer(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)
解决方案
我得到了解决方案。代码中还没有问题。问题是我从开放 API 获取的数据在无法存储到 Django 数据库中的字段中包含 Null 值。如果有人遇到同样的问题,请不要获取任何具有空值的字段。
推荐阅读
- ssl - 离子框架/离子原生http:基于ssl客户端的身份验证
- c - 在struct中动态初始化数组
- sonarqube - 声纳扫描器:无法加载组件接口 org.sonar.scanner.scan.branch.BranchConfiguration
- u-boot - 我的主板无法从 SD 卡启动
- java - 尝试构建我的项目时,将 gms/firebase 升级到版本 15.0.0 会导致 gradle 崩溃?
- php - 使用 Scrapy 和 Python3 批量下载 pdf
- laravel - vueJS - JWT Auth - 重定向问题
- python - 变量支持类,如属性分配
- node.js - Karma 测试运行器错误:“在 afterAll\nTypeError 中引发错误:_fs2.default.readdirSync 不是函数”
- laravel - Laravel 5 Chart Js 在刀片模板错误中渲染多个图表