开发者社区> 问答> 正文

为什么我的函数重定向而不在Flask中传递数据

我正在尝试创建烧瓶应用,将我的DNA转换为RNA。但是我无法使用重定向传递数据。这有什么问题吗?

  • 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 %}

    The RNA is: {{ rna }}

    {% endif %}

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 15:36:44 419 0
1 条回答
写回答
取消 提交回答
  • 当您进行重定向时,它将返回以下内容:

    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中。

    回答来源:stackoverflow

    2020-03-24 15:36:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载