2017-02-23 50 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对象,所以你可以从表单传递准确的参数。上面的例子只是为了向你展示传递给表单的内容。