Каким способом можно распознать новые файлы в каталоге с помощью Flask? - PullRequest
2 голосов
/ 07 мая 2020

Итак, у меня есть форма, которая загружает файл в / 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 вопрос. Я только начал изучать веб-разработку только для этого проекта, так что я немного борюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...