2

目前我正在尝试将提交按钮链接到“page1”页面,但是我收到了一个错误的请求错误,最初我认为问题与方法的 POST 部分有关,但不清楚如何解决这个问题问题,为了更准确地总结这一点,我尝试使用下面的提交按钮从 PAGE 进入 PAGE1,但我得到了

“错误请求浏览器(或代理)发送了一个此服务器无法理解的请求。”

视图.py

@expose('/page', methods=['GET', 'POST'])
@appbuilder.app.route('/page', methods=['GET', 'POST'])
def page(self):

    if request.method == 'POST':
        bucket = request.form['bucket']
        session['bucket'] = bucket
        return redirect(url_for('view.files'))
    else:
        return render_template(
            'x.html',
            base_template=appbuilder.base_template,
            appbuilder=appbuilder
        )

@expose('/page1', methods=['GET', 'POST'])
@appbuilder.app.route('/page1', methods=['GET', 'POST'])
def page1(self):

    if request.method == 'POST':
        bucket = request.form['bucket']
        session['bucket'] = bucket
        return redirect(url_for('view.files'))
    else:
        buckets = get_buckets_list()
        return render_template(
            'x1.html',
            base_template=appbuilder.base_template,
            appbuilder=appbuilder,
            buckets=buckets
        )

网页

            <td>
                <form class="select-bucket" action="{{ url_for('view.page1')}}" method="POST">
                    <button type="submit" name="submit" value="submit">Submit</button>
                </form>
            </td>
4

1 回答 1

0

def page(self)中,您有:

    return redirect(url_for('view.files'))

它应该是

    return redirect(url_for('page1'))

所以它指向你的page1功能。

解决方案来自: https ://teamtreehouse.com/community/flask-redirect-vs-redirecturlfor

于 2018-08-20T10:58:41.997 回答