前提
Flaskで機械学習を目的としたアプリを作成中です。
HTMLから取得したデータを取り込みたいのですが、うまくできません。
■現象Ⅰ
pati_id = str(request.form.get("pati_id"))
で実行すると下記のエラーメッセージが出力されます。
■現象Ⅱ
pati_id = str(request.form.get("pati_id"))
で実行すると
None で返答されてきます。
一般的にはrequest.form.getを使用してHTMLからの値を取得するようです。
HTML側の単純なミスかもしれませんが、解決できません。
バクを取るためのヒントでも教えていただければ幸いです。
よろしくお願いいたします。
試したこと
POSTが発行された時にif文で該当コードで真が偽か判定してみました。
発生している問題・エラーメッセージ
現象Ⅰ
BadRequestKeyError
1werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand. 2KeyError: 'pati_id' 3
現象Ⅱ
* Debugger is active! * Debugger PIN: 348-922-250 127.0.0.1 - - [14/Nov/2022 19:07:30] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 - 127.0.0.1 - - [14/Nov/2022 19:07:31] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 - 127.0.0.1 - - [14/Nov/2022 19:07:35] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [14/Nov/2022 19:07:36] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 - pati_id1 None 127.0.0.1 - - [14/Nov/2022 19:07:45] "POST /next HTTP/1.1" 302 - 127.0.0.1 - - [14/Nov/2022 19:07:45] "GET /next HTTP/1.1" 200 - 127.0.0.1 - - [14/Nov/2022 19:07:45] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 - 127.0.0.1 - - [14/Nov/2022 19:07:50] "GET /sub HTTP/1.1" 200 - 127.0.0.1 - - [14/Nov/2022 19:07:50] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 -
該当のソースコード
python3.9
1#「/next」へアクセスがあった場合に、next.htmlを返す 2@app.route("/next", methods=['GET','POST']) 3 4def next(): 5 6 if request.method == "POST": 7 8 #if request.form.get("pati_id"): 9 #return "success" 10 # else: 11 #return "error" 12 #else: 13 14 pati_id = str(request.form.get("pati_id")) 15 16 print("pati_id1") 17 print(pati_id) 18 19 20 return redirect(url_for("next")) 21 22 return render_template('next.html', 23 title = "Gait Prodict", 24 message = "退院前の歩行予測をするアプリです 続き" , 25 ) 26# return render_template('next.html', pati_id = pati_id , sex = sex , count =count) 27 28 29```HTML index.html 30 31{% extends 'base.html' %} 32 33{% block title %} 34{{ title }} 35{% endblock %} 36 37{% block headlinde %} 38{% endblock %} 39 40{% block content %} 41<P>{{ message }}</p> 42<form action = "/next" method="POST"> 43 <table> 44 <tr> 45 <th>患者IDを入力ください</th> 46 </tr> 47 <td>ID</td> 48 <td> 49 <input type="text" id="pati_id" name="pati_id" required 50 minlength="1" maxlength="4" size="10"> 51 </td> 52 </tr> 53 <tr> 54 <th>性別を入力を選んでください</th> 55 </tr> 56 <tr> 57 <th>SEX</th> 58 <td> 59 <input type = "radio" name = "sex" value = 0> 男性 60 <input type = "radio" name = "sex" value = 1 >女性 61 </td> 62 </tr> 63 <tr> 64 <th>検査回数を選んでください</th> 65 </tr> 66 <tr> 67 <th>回数</th> 68 <td> 69 <input type = "radio" name = "count" value = '1' >1回目 70 <input type = "radio" name = "count" value = '2' >2回目 71 <input type = "radio" name = "count" value = '3' >3回目 72 <input type = "radio" name = "count" value = '4' >4回目 73 <input type = "radio" name = "count" value = '5' >5回目 74 </td> 75 </tr> 76 <tr> 77 <th>血液データを入力してください</th> 78 </tr> 79 <th>ALB</th> 80 <td> 81 <input type = "number" name = "ALB" > 82 </td> 83 </tr> 84 <tr> 85```続きありHTML 86 87### 補足情報(FW/ツールのバージョンなど) 88$ flask routes 89Endpoint Methods Rule 90-------- --------- ----------------------- 91back GET, POST /back 92index GET, POST / 93next GET, POST /next 94static GET /static/<path:filename> 95sub GET, POST /sub 96(env) 97 98python3.9.13 99flask2.1.0
回答1件
あなたの回答
tips
プレビュー