Я развертываю свою модель машинного обучения локально и использую колбу для этого. У меня есть main.html и app.py, но когда я пытаюсь запустить его в консоли, я получаю сообщение об ошибке выше.
Я не могу найти "&" в обоих файлах, поэтому не могу решить проблему.
Я проверил все файлы, но не смог найти символ, такой как "&", и режим отладки просто вызывает ошибку, о которой я упоминал.
Это HTML-форма:
<!doctype html>
<html>
<style>
form {
margin: auto;
width: 35;
}
.result {
margin: auto;
width: 35;
border: 1px solid
}
</style>
<head>
<title>Sales Prediction</title>
</head>
<form action="{{url_for('main')}}" method="POST">
<fieldset>
<legend>Input values:</legend>
Week:
<input name="week" type="number" required>
<br>
<br> Grad:
<input name="grad" type="number" required>
<br>
<br> Preis:
<input name="preis" type="number" required>
<br>
<br>
<input type="submit">
</fieldset>
</form>
<br>
<div class="result" align="center">
{%if result%}
{%for variable, value in original_input.items()%}
<b>{{variable}}</b> : {{value}}
{%endfor%}
<br>
<br> Predicted number of sales :
<p style="font-size:50px">{{result}}</p>
{%endif%}
</div>
</html>
и это app.py:
import flask
import pickle
import pandas as pd
with open('model/model.pkl', 'rb') as f:
model = pickle.load(f)
app = flask.Flask(__name__, template_folder='templates')
@app.route('/', methods=['GET', 'POST'])
def main():
if flask.request.method == 'GET':
return(flask.render_template('main.html'))
if flask.request.method == 'POST':
week = flask.request.form['week']
grad = flask.request.form['grad']
preis = flask.request.form['preis']
input_variables = pd.DataFrame([[week, grad, preis]],
columns=['week', 'grad', 'preis'],
dtype=float)
prediction = model.predict(input_variables)[0]
return flask.render_template('main.html',
original_input={'week':week,
'grad':grad,
'preis':preis},
result=prediction,
)
if __name__ == '__main__':
app.debug = True
app.run(host = '0.0.0.0', port = 5000)
Как только я запускаю его в консоли, я получаю
jinja2.exceptions.TemplateSyntaxError: неожиданный символ '&' в 250601