2017-02-23 2 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_を実行します。名前が存在するかどうかを確認できます。私はリクエストについて知らない。私が一度も使ったことのないポスト。エラーが '未処理の例外'の場合は、try except文でurコードを折り返して例外を出力すると役立つかもしれません。 –

答えて

0

request.POSTA1が正しくありません。さらに、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オブジェクトであるので、あなたは、正確な引数は、フォームから渡された得ることができます。上記の例は、フォームに渡された内容を示すためのものです。

関連する問題