我正在用 Flask 构建一个网络汽车价格预测器。但是,当我单击表单的提交按钮时,什么也没有发生,数据也没有发送也没有处理。我的终端在运行 Flask 应用程序后显示 HTTP 代码 200 和 304。
这是 HTML 表单:
<form action= '{{url_for('predict')}}' method="POST" id="form"></form>
<h3>How much is my car worth?</h3>
<p>Get an accurate price for your vehicle by entering the following details</p>
<section class='year'>
<label for="year">Year</label>
<input type="number" name="year" id="year1" required='required' min="0">
</section>
<section class='msrp'>
<label for="msrp">MSRP</label>
<input type="number" name="msrp" id="msrp" required='required' min="0">
</section>
<section class='kms'>
<label for="kms">Kilometers Driven</label>
<input type="number" name="kms" id="kms" required='required' min="0">
</section>
<section class='owner'>
<label for="owner">Previous Owners</label>
<select name="owner" id="owner">
<option value="1">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</section>
<section class='fuel-type'>
<label for="fuel">Fuel Type</label>
<select name="fuel" id="fuel">
<option value="Petrol">Petrol</option>
<option value="Diesel">Diesel</option>
<option value="CNG">CNG</option>
</select>
<section class='seller-type'>
<label for="seller-type">Dealer or individual?</label>
<select name="seller-type" id="seller-type">
<option value="Dealer">Dealer</option>
<option value="Individual">Individual</option>
</select>
</section>
<section class='transmission-type'>
<label for="transmission">Transmission</label>
<select name="transmission" id="transmission">
<option value="Manual">Manual</option>
<option value="Automatic">Automatic</option>
</select>
</section>
<section>
<input type='submit' id='submit'>
</section>
</form>
<div id="price">
<p>{{predPrice}}</p>
</div>
</body>
</html>
这是 Flask 应用程序:
import re
from flask import Flask, render_template, request
import pickle
import requests
import numpy as np
import pandas as pd
model = pd.read_pickle(r'predictor/price/vehicles/file.pkl')
app = Flask(__name__)
@app.route("/", methods = ['GET', 'POST'])
def predict():
if request.method == 'POST':
year = int(request.form["year"]) # taking year input from the user
tot_year = 2020 - year
present_price = float(request.form["msrp"]) #taking the present prize
fuel_type = request.form["fuel-type"] # type of fuel of car
# if loop for assigning numerical values
if fuel_type == "Petrol":
fuel = 2
elif fuel_type == "Diesel":
fuel= 1
else:
fuel = 0
kms_driven = int(request.form["kms"]) # total driven kilometers of the car
transmission = request.form["transmission-type"] # transmission type
# assigning numerical values
if transmission == "Manual":
transmission_type = 1
else:
transmission_type = 0
seller_type = request.form["seller_type"] # seller type
if seller_type == "Individual":
seller_individual = 1
else:
seller_individual = 0
owner = int(request.form["owner"]) # number of owners
# X = [['Age', 'Present_Price', 'Kms_Driven', 'Fuel_Type', 'Seller_Type', 'Transmission', 'Owner']]
values = [[
tot_year,
present_price,
kms_driven,
fuel,
seller_individual,
transmission_type,
owner,
]]
# created a list of all the user inputed values, then using it for prediction
prediction = model.predict(values)
prediction = round(prediction[0],2)
# returning the predicted value inorder to display in the front end web application
return render_template("home.html", predPrice = 'xd')
else:
return render_template('home.html')
if __name__ == '__main__':
app.run(debug=True)
HTML 在浏览器中打开,我可以填写表格。我什至可以单击提交按钮,但没有任何反应。此外,当我单击提交时,终端上没有出现任何消息。