Flask今日触った初心者です。
flaskを使って表示されたページにボタンを複数配置し、ボタンが押されたら指定のpythonのコードが実行されるようにしたいです。
一つのボタンを配置してプログラムを実行するのは出来ました。
下は動いたコードです。
配置したボタンをクリックするとmotor_forward.pyを実行するという事が出来ました。
python
1from flask import Flask, render_template 2import motor_forward 3 4app = Flask(__name__) 5 6@app.route('/') 7def hello(): 8 return render_template('layout.html', title='tank App') 9 10@app.route('/Forward') 11def get(): 12 return motor_forward.main() 13 14 15if __name__ == "__main__": 16 # app.run(debug=True) 17 app.run(host='0.0.0.0')
templatesディレクトリに入れた表示するhtmlは下のように書きました。
html
1<!doctype html> 2<html> 3 4<head> 5 <title>{{ title }}</title> 6 <link rel="stylesheet" href="/static/css/index.css"> 7</head> 8 9<body> 10 <div class="member"> 11 12 <form method="GET" action="/Forward"> 13 <button type="submit" style="width:200px;height:100px">Forward</button> 14 </form> 15 16 </div> 17</body> 18 19</html>
このように一つボタンはこれで動くのですが、ボタンを三つ並べて、他のコードを呼び出したいです。
ボタンを三つ並べるのは下記のようにすれば並びましたが、どうやって他のコードを呼び出すか分かりません。
html
1<!doctype html> 2<html> 3 4<head> 5 <title>{{ title }}</title> 6 <link rel="stylesheet" href="/static/css/index.css"> 7</head> 8 9<body> 10 <div class="member"> 11 12 <form method="GET" action="/Forward"> 13 <button type="submit" style="width:200px;height:100px">Forward</button> 14 </form> 15 16 17 <form method="GET" action="/Stop"> 18 <button type="submit" style="width:200px;height:100px">Stop</button> 19 </form> 20 21 22 <form method="GET" action="/Back"> 23 <button type="submit" style="width:200px;height:100px">Back</button> 24 </form> 25 26 27 </div> 28</body> 29 30</html>
motor_stop.pyやmotor_back.pyが上記のStopボタンやBackボタンを押すと実行されるようにしたいです。
試しに、
python
1from flask import Flask, render_template 2import motor_forward 3 4app = Flask(__name__) 5 6@app.route('/') 7def hello(): 8 return render_template('layout.html', title='tank App') 9 10@app.route('/Forward') 11def get(): 12 return motor_forward.main() 13 14@app.route('/Stop') 15def get(): 16 # ↓ 実行したいファイルの関数 17 return motor_stop.main() 18 19@app.route('/Back') 20def get(): 21 # ↓ 実行したいファイルの関数 22 return motor_back.main() 23 24 25 26if __name__ == "__main__": 27 # app.run(debug=True) 28 app.run(host='0.0.0.0')
としらエラーで動きません。多分@app.routeというのは1個だけじゃないといけないっぽい?
AssertionError: View function mapping is overwriting an existing endpoint function:
どうやったら3つボタンを配置して、配置したボタンごとに実行するコードを割り当てることが出来るでしょうか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/05 12:19