1

/contact.html というページがあります。送信すると、ユーザーがログインしている 2 番目のページ (algo.html) に移動するボタンがあります。この 2 番目のページには 2 つのボタンがありますが、どちらも応答できません。これは私が持っているコードです:

@app.route('/contact', methods = ['GET', 'POST'])
def contact():
    form = ContactForm()

    if request.method == 'POST':
        return render_template('algo.html')
    if request.method == 'POST' and request.form['submit'] == 'swipeleft':
        print "yes"

contact.html には次のものがあります。

<form action="{{ url_for('contact') }}" method=post> 
{{ form.hidden_tag() }}
{{ form.name.label }}
{{ form.name }}
{{ form.submit }}

そして algo.html には次のものがあります。

<input type = "submit" name = "submit" value = "swipeleft" method=post>
<input type = "submit" name = "submit" value = "swiperight" method=post>
4

3 に答える 3

2

algo.htmlテンプレートでは、次/contactの値をチェックしているため、同じ URL にフォームを送信する必要がありますswipeleft

<form action="{{ url_for('contact') }}" method="post">
   <input type = "submit" name = "submit" value = "swipeleft" />
   <input type = "submit" name = "submit" value = "swiperight" />
</form>
于 2013-11-07T05:17:21.717 に答える
0

それを試してみてください:

if request.method == 'POST':
    if request.form.get('submit') == 'swipeleft':
        print "first part"
    elif request.form.get('submit') == 'swiperight':
        print "second part"
    return render_template('algo.html')
于 2013-11-07T05:09:21.957 に答える
0

あなたの問題はここにあると思います:

if request.method == 'POST':
    return render_template('algo.html')
if request.method == 'POST' and request.form['submit'] == 'swipeleft':
    print "yes"

最初の if ステートメントでは常に True を返し、関数はレンダリングされたテンプレートを返します。2 番目の if ステートメントはチェックされません。

POSTリクエストとフォームが送信されたかどうかをチェックするように位置を切り替えるだけです。

if request.method == 'POST' and request.form['submit'] == 'swipeleft':
    print "yes"
if request.method == 'POST':
    return render_template('algo.html')

また

if request.method == 'POST':
    if request.form['submit'] == 'swipeleft':
         print "yes"

    return render_template('algo.html')

編集:あなたはここで重大な間違いをしました:

<input type = "submit" name = "submit" value = "swipeleft" method=post>

次のように変更します。

<form method="post" action="URL" > # change URL to your view url.
    <input type="submit" name="swipeleft" value ="swipeleft">
</form>

ビューで、次の操作を行います。

if request.method == 'POST' and request.form['swipeleft']:
于 2013-11-05T18:41:21.780 に答える