2017-02-23 51 views
0

我試圖獲取表單輸入並把它放在我的變量(測試),這是我的嘗試:認沽表單輸入(Python中,瓶)

from flask import Flask, redirect, render_template, request, url_for 
import random 

app = Flask(__name__) 
app.config["DEBUG"] = True 

vraag = "Wat is een barkie?" 
ans = ['€10', '€50', '€100', '€1000'] 

@app.route("/") 
def Q1(): 
    random.shuffle(ans) 
    return render_template('main_page.html', vraag=vraag, ans=ans) 


@app.route("/1", methods=["GET", "POST"]) 
def A1(): 
    test = request.POST 
    return render_template('check.html', test=test) 

main_page.html:

<body> 
<p>{{ vraag }}</p> 
{% for item in ans%} 
<form method="POST" action="{{ url_for('A1') }}"> 
    <input type="submit" name={{ item }} value={{ item }} /> 
</form> 
{% endfor %} 
</body> 

我在這裏做錯了什麼?作爲錯誤代碼,它給出'未處理的異常'

+0

爲了從表單中檢索數據,我總是執行_name = request.form.get('name')或None_,然後我可以檢查名稱是否存在。我不知道我從未使用過的request.POST。但如果錯誤是'未處理的異常',那麼可能在嘗試except語句中包裝ur代碼並打印出異常可能會有所幫助。 –

回答

0

request.POST in A1是不正確的。此外,您應該用引號將item換行。

A1應該是這樣的:

@app.route("/1", methods=["GET", "POST"]) 
def A1(): 
    if request.method == 'POST': 
     return render_template('check.html', test=str(request.form)) 
    else: 
     return "This page doesn't accept GET requests." 

request.formImmutableMultiDict對象,所以你可以從表單傳遞準確的參數。上面的例子只是爲了向你展示傳遞給表單的內容。