| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Flower Predictor</title> |
| <style> |
| body { |
| font-family: Arial, sans-serif; |
| margin: 0; |
| padding: 0; |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| height: 100vh; |
| background-color: #f2f2f2; |
| } |
| |
| form { |
| background-color: #fff; |
| padding: 20px; |
| border-radius: 10px; |
| box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
| } |
| |
| label { |
| display: block; |
| margin-bottom: 10px; |
| } |
| |
| input[type="text"] { |
| width: 100%; |
| padding: 10px; |
| margin-bottom: 20px; |
| border: 1px solid #ccc; |
| border-radius: 5px; |
| box-sizing: border-box; |
| } |
| |
| input[type="submit"] { |
| background-color: #4CAF50; |
| color: white; |
| padding: 10px 20px; |
| border: none; |
| border-radius: 5px; |
| cursor: pointer; |
| } |
| |
| input[type="submit"]:hover { |
| background-color: #45a049; |
| } |
| </style> |
| </head> |
| <body> |
| <div> |
| <h1>Flower Predictor</h1> |
| <p>Enter the flower measurements to predict the class of the flower.</p> |
| <p> The predicted class is: <span id="predicted_class"></span> </p> |
| </div> |
| <form id="flowerForm"> |
| <label for="petal_length">Petal Length:</label> |
| <input type="text" id="petal_length" name="petal_length" required> |
|
|
| <label for="sepal_length">Sepal Length:</label> |
| <input type="text" id="sepal_length" name="sepal_length" required> |
|
|
| <label for="petal_width">Petal Width:</label> |
| <input type="text" id="petal_width" name="petal_width" required> |
|
|
| <label for="sepal_width">Sepal Width:</label> |
| <input type="text" id="sepal_width" name="sepal_width" required> |
|
|
| <input type="submit" value="Predict"> |
| </form> |
|
|
| <script> |
| document.getElementById("flowerForm").addEventListener("submit", function(event) { |
| event.preventDefault(); |
| |
| |
| const formData = new FormData(event.target); |
| const requestData = {}; |
| formData.forEach((value, key) => { |
| requestData[key] = value; |
| }); |
| |
| |
| fetch("/predict", { |
| method: "POST", |
| headers: { |
| "Content-Type": "application/json" |
| }, |
| body: JSON.stringify(requestData) |
| }) |
| .then(response => { |
| if (!response.ok) { |
| throw new Error("Network response was not ok"); |
| } |
| return response.json(); |
| }) |
| .then(data => { |
| |
| console.log(data); |
| document.getElementById("predicted_class").innerText = data.predicted_class; |
| |
| }) |
| .catch(error => { |
| console.error("Error:", error); |
| alert("An error occurred. Please try again."); |
| }); |
| }); |
| </script> |
|
|
| </body> |
| </html> |
|
|