表格验证链接到烧瓶中的不同页面

时间:2016-09-17 17:37:25

标签: forms validation redirect flask

您好我正在尝试创建一个简单的调查应用程序,如果您填写表单,它会将您移至您可以查看调查结果的页面。

我目前遇到的问题是"请求的网址不允许这种方法。"

Sever.py:

from flask import Flask, flash, session, render_template, request, redirect, url_for
app = Flask(__name__)
app.secret_key = 'very secret'


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/process', methods=['POST'])
def process():
    if len(request.form['name']) < 1 or len(request.form['comments']) < 1:
        flash("you need to fill out the name and comments")
    else:
        return redirect(url_for('createUser'))
    return redirect('/')


@app.route('/results', methods=['POST'])
def createUser():
    return render_template('results.html', name=request.form['name'],
        location=request.form['location'],  favLang=request.form['favLang'],
    comments=request.form['comments'])
    return redirect('/')

app.run(debug=True)

if / else语句有效,因为当我不输入姓名或评论时,我会得到我的flash。我无法让其他人正确地转到app.route(&#39; / results&#39;)。我也试过这个没有成功:

@app.route('/process', methods=['POST'])
def process():
    if len(request.form['name']) < 1 or len(request.form['comments']) < 1:
        flash("you need to fill out the name and comments")
    else:
        return redirect('/results')
    return redirect('/')

1 个答案:

答案 0 :(得分:0)

感谢@davidism的评论,我刚刚在vaidation表单中创建了用户,然后在结果页面上进行了链接。

这里是:

@app.route('/process', methods=['POST'])
def process():
    if len(request.form['name']) < 1 or len(request.form['comments']) < 1:
        flash("you need to fill out the name and comments")
    else:
        return render_template('results.html', name=request.form['name'],
            location=request.form['location'],  favLang=request.form['favLang'],
            comments=request.form['comments'])
    return redirect('/')

我不知道&#34;正确&#34;它确实按照我想要的方式运作。