Итак, у меня есть форма, которая загружает файл в / assets / models, и у меня есть другая форма на отдельной странице с полем выбора, в котором я хочу выбрать один из файлов из / assets / models. Однако, если я не перезапущу сервер Flask, он не покажет новый файл в раскрывающемся списке.
forms.py
class PredictForm(FlaskForm):
datasheet = FileField('CSV Dataset', validators=[DataRequired()])
myModels = os.listdir('C:/Users/Matt/Documents/graymatter-flask/assets/models/')
myChoices = []
for model in myModels:
myChoices.append((model,model))
model_name = SelectField('Select the Model', choices = myChoices, validators=[DataRequired()])
submit = SubmitField('Predict')
routes.py
@app.route('/predictdata', methods=['GET', 'POST'])
def predictdata():
form = PredictForm()
if form.validate_on_submit():
assets_dir = os.path.join(os.path.dirname(app.instance_path), 'assets')
input_data = form.datasheet.data
input_filename = secure_filename(input_data.filename)
model_name = form.model_name.data
input_data.save(os.path.join(assets_dir, 'tempdata', input_filename))
results_array = easy_ai_prediction.prediction(input_filename, model_name)
session['results'] = results_array.tolist()
os.remove('C:/Users/Matt/Documents/graymatter-flask/assets/tempdata/'+input_filename)
return redirect(url_for('results'))
return render_template('predictdata.html', title='Predict Data', form=form)
predictdata. html
{% extends "base.html" %}
{% block content %}
<h1>Predict</h1>
<form action="" enctype="multipart/form-data" method="post" novalidate>
{{ form.hidden_tag() }}
<p>
{{ form.datasheet.label }}<br>
{{ form.datasheet(size=32) }}<br>
{% for error in form.datasheet.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
{{ form.model_name.label }}<br>
{{ form.model_name(size=1) }}<br>
{% for error in form.model_name.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>{{ form.submit }}</p>
</form>
{% endblock %}
Прошу прощения, если это действительно базовый c вопрос. Я только начал изучать веб-разработку только для этого проекта, так что я немного борюсь.