我正在学习Flask,我在将参数传递给URL以便在另一个页面上使用时遇到了一些麻烦。例如,我在/index
上有一个表单,我希望它重定向到/results
页面,我可以打印表单数据。我的尝试是这样的:
from flask import render_template
from flask import redirect
from flask import url_for
from app import app
from .forms import LoginForm
@app.route('/')
@app.route('/index', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
name = form.artistName.data
return redirect(url_for('result', name=name))
else:
return redirect('/index')
return render_template('index.html',
title='Sign In',
form=form)
@app.route('/result/<name>')
def result(name):
return render_template('results.html')
重定向到Method not allowed for the requested URL
页面时收到405错误/results
。我想使用表单的结果作为参数在/results
上构建一个URL。
我该怎么做?非常感谢
答案 0 :(得分:0)
你定义了
@app.route('/result/<name>')
表示其默认的http方法是GET
;
当它运行时:
if form.validate_on_submit():
# POST method
name = form.artistName.data
# redirect Will use 'POST'
return redirect(url_for('result', name=name))
所以,你得到Method not allowed for the requested URL
。
我认为您可以向POST
@app.route('/result/<name>')
方法