Flask POST请求返回主网页而不是返回结果

时间:2017-11-09 00:15:31

标签: python flask

我想写一个视图,询问一些输入,然后将其返回为大写。我按照Send Data from a textbox into Flask?中的说明进行操作。

该应用程序通过cPanel在case 0 => eitherArray(x).aMethod() case 1 => eitherArray(x).bMethod() 使用Phusion Passenger进行托管。当我点击提交时,我被发送到example.com/form。在重定向之前,example.com上的文本没有任何反应。

我做错了什么?我为什么被重定向?

example.com/form

templates/form.html

<form action="." method="POST"> <textarea name="text"></textarea> <input type="submit"> </form>

form.py

1 个答案:

答案 0 :(得分:2)

您所遵循的答案对于未在根管理的应用程序存在问题。 (他们现在已经编辑过了。)

您的应用已在/form托管。表单action应该是绝对路径,而不是相对路径。始终使用url_for生成网址,您将避免此问题。

<form action="{{ url_for('form_post') }}" method=post>

由于您的两个视图共享相同的网址,因此可以省略action。在这种情况下,常见的模式是使用一个视图来处理GET和POST。

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        return request.form['text'].upper()

    return render_template('index.html')