将按钮链接到 Flask-Appbuilder 中的页面



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

"错误请求 浏览器(或代理(发送了此服务器无法理解的请求。

View.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>

def page(self)中,您有:

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

它应该是

return redirect(url_for('page1'))

所以它指向你的page1函数。

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

最新更新