2016-09-17 66 views
0

您好,我正在嘗試創建一個簡單的調查應用程序,如果您完成表單,它會將您移動到可以查看調查結果的頁面。鏈接到燒瓶中不同頁面的表單驗證

我現在遇到的問題是「請求的URL不允許使用該方法」。

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 statment監守工作讓我的閃光燈時,我不輸入一個名稱或註釋。我無法正確地轉到app.route('/ results')。我也有這個試了一下沒有成功:

@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('/') 
+0

只需創建用戶,不需要重定向到其他視圖/請求,就可以獲得第一個請求中的所有數據。 – davidism

+0

你的天才。謝謝您的幫助。 (你知道隧道視野) – BatsAuto

回答

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('/') 

我不知道它是如何「正確」的,但我certianly作品我想它的方式。