File size: 1,640 Bytes
a349f54 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# from django.shortcuts import render
# import numpy as np
# import joblib
# # Load your model
# model = joblib.load('predictor/model.joblib') # Adjust path if needed
# def predict_view(request):
# prediction = None
# if request.method == 'POST':
# rainfall = float(request.POST.get('rainfall'))
# river = float(request.POST.get('river'))
# input_data = np.array([[rainfall, river]])
# result = model.predict(input_data)
# prediction = result[0]
# return render(request, 'predictor_form.html', {'prediction': prediction})
# #This is to test
# from django.http import HttpResponse
# def home(request):
# return HttpResponse("Hello, this is your predictor app homepage!")
# predictor/views.py
import joblib
from django.shortcuts import render
from .forms import PredictionForm
# Load model once globally (adjust path if needed)
model = joblib.load('predictor/model.joblib')
def predict_view(request):
predicted_value = None
if request.method == 'POST':
form = PredictionForm(request.POST)
if form.is_valid():
rainfall = form.cleaned_data['rainfall']
river_level = form.cleaned_data['river_level']
# Make prediction using model
predicted_value = model.predict([[rainfall, river_level]])[0]
flood_status = 'high' if predicted_value > 0.6 else 'low'
else:
form = PredictionForm()
return render(request, 'predictor/predict.html', {
'form': form,
'predicted_value': predicted_value,
})
|