首页 > 解决方案 > 如何在烧瓶中实现一个嵌套路由,每个路由都做不同的事情

问题描述

@app.route('/sera/<mount_type>')
@app.route('/sera', methods=['POST'])
def return_pages():
    if request.method == 'POST':
        usin = request.form.get('serval')
        global mount_type
        mount_type = usin 
    #this section runs independend of the search box
    if mount_type == 'acongagua':
        return render_template('result.html',aa=acongagua.names, ac=acongagua.location, ad=acongagua.metre_height, ae=acongagua.feet_height)
    elif mount_type == 'adams':
        return render_template('result.html',aa=adams.names, ac=adams.location, ad=adams.metre_height, ae=adams.feet_height)
    else:
        return 'YOU HAVE ENTERED AN INCORRECT VALUE'

if __name__ == '__main__':
    app.run(debug=True, use_reloader=True)

那是我正在尝试运行的python烧瓶代码第一个if语句应该在填写表格时运行,并且应该将其值传递给seconf if语句

标签: python-3.xflask

解决方案


您可以使用redirect重定向请求,并将值作为 URL 参数传递:

from flask import redirect

@app.route('/sera/<mount_type>')
@app.route('/sera', methods=['POST'])
def return_pages():
    if request.method == 'POST':
        usin = request.form.get('serval')
        return redirect(url_for('return_pages', mount_type=usin))  # <--
    ...

推荐阅读