質問するログイン新規登録

回答編集履歴

5

コメントを受けて追記2

2020/03/19 03:22

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37634

answer CHANGED
@@ -79,4 +79,19 @@
79
79
  ↑この場合、アクセスできるキーは`"1"` `"2"` `"3"`です。しかし、`request.form.get('janken')`で取得する値は、`"勝利"` `"負け"` `"引き分け"`ですから、値の設定を見直す必要があるでしょう。
80
80
 
81
81
  参考:
82
- [とっても便利なPythonの辞書型について覚え書き - Qiita](https://qiita.com/E_Schaf/items/9ef26c0c514325d69e80)
82
+ [とっても便利なPythonの辞書型について覚え書き - Qiita](https://qiita.com/E_Schaf/items/9ef26c0c514325d69e80)
83
+
84
+ ### コメントを受けて追記2
85
+
86
+ >出力結果は型エラーがでたので文字型ではなく数値にキーを設定しても同様のエラーとなっております。
87
+ >型が間違っているのでしょうか。
88
+
89
+ その通りです。
90
+ ```python
91
+ choice_list = ["1", "2", "3"]
92
+ ```
93
+ `"1"`は数値ではなく、文字列です。
94
+
95
+
96
+ ただ、これ、数値に直しても、`janken`変数に入っているのは`"勝利"`なので、`janken[1]`は`"利"`です。
97
+ reokさんの想定と違うのではありませんか?

4

コメントを受けて追記

2020/03/19 03:21

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37634

answer CHANGED
@@ -63,4 +63,20 @@
63
63
  > HTML で value 属性を省略すると、送信されたフォームデータのそのグループには on の値が割り当てられます。
64
64
  [<input type="radio"> - HTML: HyperText Markup Language | MDN](https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input/radio#Data_representation_of_a_radio_group)
65
65
 
66
- reokさんは、Pythonやる前に、まずきちんとHTMLを学んだ方がいいのかもしれないですね。
66
+ reokさんは、Pythonやる前に、まずきちんとHTMLを学んだ方がいいのかもしれないですね。
67
+
68
+ ### コメントを受けて追記
69
+
70
+ >File "c:/Users/test/server.py", line 16, in post
71
+ >user_choice = radio[janken]
72
+ >KeyError: '勝利'
73
+
74
+ radio変数は辞書型なので、存在しないキーでアクセスするとエラーになります。
75
+
76
+ ```python
77
+ radio = {"1": "グー","2": "チョキ","3": "パー"}
78
+ ```
79
+ ↑この場合、アクセスできるキーは`"1"` `"2"` `"3"`です。しかし、`request.form.get('janken')`で取得する値は、`"勝利"` `"負け"` `"引き分け"`ですから、値の設定を見直す必要があるでしょう。
80
+
81
+ 参考:
82
+ [とっても便利なPythonの辞書型について覚え書き - Qiita](https://qiita.com/E_Schaf/items/9ef26c0c514325d69e80)

3

質問の編集を受けて追記2

2020/03/19 00:38

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37634

answer CHANGED
@@ -48,4 +48,19 @@
48
48
  >user_choice = radio[name]
49
49
 
50
50
  ラジオボタンのHTMLの書き方が間違っています。`name_3`のような属性は有効ではありません。
51
- [<INPUT type="radio">-HTMLタグリファレンス](http://www.htmq.com/html/input_radio.shtml)
51
+ [<INPUT type="radio">-HTMLタグリファレンス](http://www.htmq.com/html/input_radio.shtml)
52
+
53
+ ### 質問の編集を受けて追記2
54
+ >File "c:/Users/test/server.py", line 16, in post
55
+ >user_choice = radio[janken]
56
+ >KeyError: 'on'
57
+
58
+ ```html
59
+ <input type="radio" id="r1" name="janken" value1="勝ち">
60
+ ```
61
+ value属性をつけましょう。
62
+
63
+ > HTML で value 属性を省略すると、送信されたフォームデータのそのグループには on の値が割り当てられます。
64
+ [<input type="radio"> - HTML: HyperText Markup Language | MDN](https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input/radio#Data_representation_of_a_radio_group)
65
+
66
+ reokさんは、Pythonやる前に、まずきちんとHTMLを学んだ方がいいのかもしれないですね。

2

質問の編集を受けて追記

2020/03/18 10:27

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37634

answer CHANGED
@@ -40,4 +40,12 @@
40
40
  @app.route('/zyanken', methods=['POST'])
41
41
  ```
42
42
 
43
- URLが間違っているように思えます。
43
+ URLが間違っているように思えます。
44
+
45
+ ### 質問の編集を受けて追記
46
+
47
+ >File "c:/Users/test/server.py", line 16, in post
48
+ >user_choice = radio[name]
49
+
50
+ ラジオボタンのHTMLの書き方が間違っています。`name_3`のような属性は有効ではありません。
51
+ [<INPUT type="radio">-HTMLタグリファレンス](http://www.htmq.com/html/input_radio.shtml)

1

質問の補足を受けて追記

2020/03/18 08:12

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37634

answer CHANGED
@@ -23,4 +23,21 @@
23
23
 
24
24
  radio_3は未定義では。
25
25
  その他、定義されていない変数がたくさんありますが、もしかして、これはリストの添え字ですか?
26
- reokさんは、プログラミング初学者ですか? 「リストとは何か」から説明する必要がありますか?
26
+ reokさんは、プログラミング初学者ですか? 「リストとは何か」から説明する必要がありますか?
27
+
28
+ ### 質問の補足を受けて追記
29
+
30
+ >エラーがhtml側でおきております。
31
+ >-------------------------
32
+ >Method Not Allowed
33
+ >The method is not allowed for the requested URL.
34
+
35
+ ```html
36
+ <form action="/" method="POST" enctype="multipart/form-data">
37
+ ```
38
+
39
+ ```python
40
+ @app.route('/zyanken', methods=['POST'])
41
+ ```
42
+
43
+ URLが間違っているように思えます。