POST из файла Python в базу данных в Django
Я разрабатываю приложение на Django, которое использует машинное обучение. На данный момент я обучил модель и создал список в views.py
. Однако я хотел бы ПОСТАВИТЬ предсказание из файла в базу данных. Я проверил множество руководств и даже StackOverflow, но не получил удовлетворительного ответа. Вот мой views.py
:
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
from core.models import Churn
from core.serializers import ChurnSerializer
from django.http.response import JsonResponse
import pickle
# Create your views here.
#GET, POST, PUSH, DELETE methods defined
u/csrf_exempt
def churnApi(request,id=0):
if request.method=='GET':
churns = Churn.objects.all()
churns_serializer = ChurnSerializer(churns, many=True)
return JsonResponse(churns_serializer.data, safe=False)
elif request.method=='POST':
churn_data=JSONParser().parse(request)
churns_serializer = ChurnSerializer(data=churn_data)
if churns_serializer.is_valid():
churns_serializer.save()
return JsonResponse("Added Successfully!", safe = False)
return JsonResponse("Failed to Add", safe=False)
elif request.method=='PUT':
churn_data = JSONParser().parse(request)
churn=churns.objects.get(ModelPred=churn_data['ModelPred'])
churns_serializer=ChurnSerializer(churn,data=churn_data)
if churns_serializer.is_valid():
churns_serializer.save()
return JsonResponse("Updated successfully", safe=False)
return JsonResponse("Failed to update", safe=False)
elif request.method=='DELETE':
churn=Churn.objects.get(ModelPred=id)
churn.delete()
return JsonResponse("Deleted successfully", safe=False)
#Render frontend from folder
def front(request):
context = { }
return render(request, "index.html", context)
#Prediction generated by Machine Learning model
def result(request):
cls = pickle.load('churn_model.sav')
lis = []
lis.append(request.GET['0'])
lis.append(request.GET['1'])
lis.append(request.GET['29.85'])
lis.append(request.GET['29.85'])
lis.append(request.GET['0'])
lis.append(request.GET['1'])
lis.append(request.GET['0'])
lis.append(request.GET['0'])
lis.append(request.GET['0'])
lis.append(request.GET['1'])
lis.append(request.GET['1'])
lis.append(request.GET['1'])
lis.append(request.GET['0'])
lis.append(request.GET['0'])
lis.append(request.GET['1'])
lis.append(request.GET['0'])
lis.append(request.GET['1'])
lis.append(request.GET['0'])
lis.append(request.GET['1'])
lis.append(request.GET['0'])
print(lis)
ans = cls.predict([lis])
print(ans)
Сейчас, для простоты, я использую список в самом файле views для получения прогноза. После того как я смогу убедиться, что моя модель работает, я буду использовать набор данных.
Если вы знаете, как это сделать, ваша помощь будет высоко оценена.