1. ホーム
  2. python

[解決済み] フラスコパイソンボタン

2022-02-06 02:30:52

質問

あるページに2つのボタンを作成しようとしています。それぞれサーバー上で異なるPythonスクリプトを実行したいと思います。これまでのところ、私は唯一の管理下にあります 取得/収集 を使用して1つのボタンをクリックします。

def contact():
  form = ContactForm()

  if request.method == 'POST':
    return 'Form posted.'

  elif request.method == 'GET':
     return render_template('contact.html', form=form)

押されたボタンによって、何を変更する必要があるのでしょうか?

どのように解決するのですか?

2つのボタンに同じ名前と異なる値を設定します。

<input type="submit" name="submit_button" value="Do Something">
<input type="submit" name="submit_button" value="Do Something Else">

そうすると、Flask のビュー関数で、どのボタンがフォームの送信に使われたかを知ることができるようになります。

def contact():
    if request.method == 'POST':
        if request.form['submit_button'] == 'Do Something':
            pass # do something
        elif request.form['submit_button'] == 'Do Something Else':
            pass # do something else
        else:
            pass # unknown
    elif request.method == 'GET':
        return render_template('contact.html', form=form)