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