from django.http import JsonResponse, HttpResponse
from django.shortcuts import render
from math import sqrt
from fractions import Fraction
def index(request):
return render(request, 'home/index.html', {})
def multiplication(request):
return render(request, 'multiplication/multiplication.html', {})
def compute(request):
a = int(request.POST.get("a"))
b = int(request.POST.get("b"))
c = int(request.POST.get("c"))
det = b*b-4*a*c
rdet = sqrt(det)
x1= (-b-rdet)/(2*a)
x2= (-b+rdet)/(2*a)
x3= Fraction(15, 45)
return JsonResponse({"op_result": det, "op_result2": x1, "op_result3": x2, "op_result4": 2*a, "op_result5": -b, "op_result6": c,"op_result7": x3})
在我的view.py,我试图发送回我的html,通过var x3函数分数的结果
x3= Fraction(15,45),并使用JsonResponse发送结果。但我有一个错误消息:
fraction类型的对象不是json可序列化的
我不明白错在哪里。
谢谢你的帮助
2条答案
按热度按时间juzqafwq1#
您不能序列化分数,但可以创建自定义序列化程序并在其中传递分子和分母。
这是jsonresponse中的输出
[![在此处输入图像描述][1]][1]
而不是发送分数只是计算它并发送它作为字符串将是一个更简单的方法
px9o7tmv2#