我刚开始学习Django并试图创建一个API。它是一个简单的API,从表中获取定义并将其作为响应返回。但是每当我试图在请求中发送一个关键字时,就会得到一个错误,类型为“jsondecodererror”的对象不是JSON可序列化的。我在这里做错什么了?在
@api_view(['POST'])
def getdetails(request):
try:
connection = sqlite3.connect('{}.db'.format('insure'))
cursor = connection.cursor()
plan = json.loads(request.body.decode('utf-8'))
cursor.execute(
"""SELECT INSURANCE_TYPE_DESC FROM tblInsurancePlans WHERE INSURANCE_TYPE LIKE '%{}%'""".format(plan)
)
rows = cursor.fetchall()
for row in rows:
return JsonResponse(str(row), safe=False)
except Exception as e:
return Response(e)
然而,当我尝试硬编码关键字(plan)时,它起作用了,我得到了响应。在
当您
query
获取多行的数据库时,result
在django中是queryset (orderDict)
,因此您必须serialize
它们,并且convert
为正确的格式。在根据api,
response
将只接受json
数据。在对于more info on how to use serializers。在
注意:
在返回一个}。
response
之后,服务器和客户端之间的connection
得到{从一个
api request
中,您只能发送一个响应。{13}你要回来 你必须在一个响应中发送所有数据。
相关问题 更多 >
编程相关推荐