Очистить вывод Jinja при обновлении - PullRequest
0 голосов
/ 02 августа 2020

Я новичок, поэтому не знаю, что делать. У меня есть веб-страница, которая использует Flask с шаблонами Jinja, которая принимает пользовательский текст через GET и POST и передает его в scaler.save, сохраняет результат как «прогноз» и «вероятность». В зависимости от того, какой прогноз равен 1 или 0, он будет отображать другой «текст» или «процент» и использовать перенаправление для передачи его на страницу индекса.

Моя проблема в том, что когда страница обновляется или если кто-то перейдет в другую часть веб-сайта и вернется к индексу, в индексе все равно будут отображаться значения {{text}} и {{percent}}. Я бы хотел, чтобы эти значения были очищены при перезагрузке страницы. Например, показывать их сначала, когда форма отправляется, но затем очищается при новой перезагрузке. У меня есть страница, размещенная на Heroku, и она по-прежнему отображает {{text}} и {{percent}} другого пользователя, и ее следует очистить, если новый человек заходит на нее и загружает ее.

Я включил код в Flask ниже и HTML. Любая помощь будет принята с благодарностью.

@app.route("/", methods=['GET', 'POST'])
def index():
    return render_template("index.html", text=text, percent=percent)


@app.route("/predict", methods=["POST"])
def predict():
    if request.method == 'POST': 
        my_input = request.form.to_dict()
        my_input_array = pd.Series(my_input["input text"])
        my_input_array2= my_input["input text"]

        print(my_input_array)

        prediction = scaler.predict(my_input_array)
        probability= scaler.predict_proba(my_input_array)
        trumpper= "{:.2%}".format(probability[0][0])
        hilper= "{:.2%}".format(probability[0][1])


        if prediction == 0:
            
            text= my_input_array2
            percent= trumpper

        elif prediction == 1:
            
            text= my_input_array2
            percent= hilper
        
        return redirect(url_for("index")) 

Это HTML:

<form action="{{ url_for('predict')}}" method="post">
  <textarea class="form-control" id="exampleTextarea" name="input text" placeholder="input text here" required="required" rows="3" </textarea>
  <!--<input type="text" textarea class="form-control" name="input text" placeholder="input text" required="required" rows="3"></textarea> -->
  <button type="submit" class="btn btn-primary btn-block btn-lg">Submit text </button>
</form>

<br> {% if value %}
<div class="card text-white bg-secondary mb-3" style="max-width: 1000px;">


  <div class="card-header">
    <h3>Your text: <i>"{{ text }}" </i></h3>
  </div>
  <div class="card-body">
    <h3 class="card-title">MY PREDICTION IS:
      <i><b> {{ percent }}  {{ value }} </b></i>
      <br>
    </h3>

  </div>
</div>
{% endif %}
...