Flask - 将参数传递给URL - 405错误

时间:2016-12-20 16:57:11

标签: python redirect flask http-status-code-405

我正在学习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。

我该怎么做?非常感谢

1 个答案:

答案 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>')方法