from flask import Flask, render_template, request import pickle import numpy as np app = Flask(__name__) # Load the trained model model = pickle.load(open("crop.pkl", "rb")) # Load the SAME LabelEncoder used during training le = pickle.load(open("label_encoder.pkl", "rb")) @app.route("/") def home(): return render_template("index.html") @app.route("/predict", methods=["POST"]) def predict(): N = float(request.form['N']) P = float(request.form['P']) K = float(request.form['K']) temperature = float(request.form['temperature']) humidity = float(request.form['humidity']) ph = float(request.form['ph']) rainfall = float(request.form['rainfall']) features = np.array([[N, P, K, temperature, humidity, ph, rainfall]]) pred = model.predict(features) crop = le.inverse_transform(pred)[0] return render_template('result.html', prediction_text=f"Recommended Crop: {crop}")