Почему моя функция перенаправляет без передачи данных в Flask - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь создать приложение flask, где моя ДНК будет преобразована в РНК. Но я не могу передать данные с помощью перенаправления. Что здесь может быть не так?

python код:

@app.route('/', methods=['GET','POST'])
def home():
    form = DNAForm()
    if form.validate_on_submit():
        # flash(f'Your dna is {form.dna.data.Upper()}', 'success')
        dna = form.dna.data.upper()
        rna = dna.maketrans('ACGT','UGCA')
        return redirect(url_for('home', rna=rna))
    return render_template('index.html', form=form)

html код:

{% if rna %}
   <h4>The RNA is: <span class="text-danger">{{ rna }}</span> </h4>
{% endif %}

1 Ответ

3 голосов
/ 10 марта 2020

Когда вы сделаете редирект, он вернет следующее:

return render_template('index.html', form=form)

То есть rna не будет передано index.html

Вот как это исправить

@app.route('/', methods=['GET','POST'])
def home():
    form = DNAForm()
    rna = None
    if form.validate_on_submit():
        dna = form.dna.data.upper()
        rna = dna.maketrans('ACGT','UGCA')
        # if you don't want the form to be filled with previous data
        form.dna.data = ''

    return render_template('index.html', form=form, rna = rna)

Теперь, когда form будет отправлено и проверено, оно даст rna некоторое значение для отображения в index.html

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