|
<!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> |
|
|