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,
    })