回答編集履歴

5

コメントを受けて追記2

2020/03/19 03:22

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -161,3 +161,33 @@
161
161
  参考:
162
162
 
163
163
  [とっても便利なPythonの辞書型について覚え書き - Qiita](https://qiita.com/E_Schaf/items/9ef26c0c514325d69e80)
164
+
165
+
166
+
167
+ ### コメントを受けて追記2
168
+
169
+
170
+
171
+ >出力結果は型エラーがでたので文字型ではなく数値にキーを設定しても同様のエラーとなっております。
172
+
173
+ >型が間違っているのでしょうか。
174
+
175
+
176
+
177
+ その通りです。
178
+
179
+ ```python
180
+
181
+ choice_list = ["1", "2", "3"]
182
+
183
+ ```
184
+
185
+ `"1"`は数値ではなく、文字列です。
186
+
187
+
188
+
189
+
190
+
191
+ ただ、これ、数値に直しても、`janken`変数に入っているのは`"勝利"`なので、`janken[1]`は`"利"`です。
192
+
193
+ reokさんの想定と違うのではありませんか?

4

コメントを受けて追記

2020/03/19 03:21

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -129,3 +129,35 @@
129
129
 
130
130
 
131
131
  reokさんは、Pythonやる前に、まずきちんとHTMLを学んだ方がいいのかもしれないですね。
132
+
133
+
134
+
135
+ ### コメントを受けて追記
136
+
137
+
138
+
139
+ >File "c:/Users/test/server.py", line 16, in post
140
+
141
+ >user_choice = radio[janken]
142
+
143
+ >KeyError: '勝利'
144
+
145
+
146
+
147
+ radio変数は辞書型なので、存在しないキーでアクセスするとエラーになります。
148
+
149
+
150
+
151
+ ```python
152
+
153
+ radio = {"1": "グー","2": "チョキ","3": "パー"}
154
+
155
+ ```
156
+
157
+ ↑この場合、アクセスできるキーは`"1"` `"2"` `"3"`です。しかし、`request.form.get('janken')`で取得する値は、`"勝利"` `"負け"` `"引き分け"`ですから、値の設定を見直す必要があるでしょう。
158
+
159
+
160
+
161
+ 参考:
162
+
163
+ [とっても便利なPythonの辞書型について覚え書き - Qiita](https://qiita.com/E_Schaf/items/9ef26c0c514325d69e80)

3

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

2020/03/19 00:38

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -99,3 +99,33 @@
99
99
  ラジオボタンのHTMLの書き方が間違っています。`name_3`のような属性は有効ではありません。
100
100
 
101
101
  [<INPUT type="radio">-HTMLタグリファレンス](http://www.htmq.com/html/input_radio.shtml)
102
+
103
+
104
+
105
+ ### 質問の編集を受けて追記2
106
+
107
+ >File "c:/Users/test/server.py", line 16, in post
108
+
109
+ >user_choice = radio[janken]
110
+
111
+ >KeyError: 'on'
112
+
113
+
114
+
115
+ ```html
116
+
117
+ <input type="radio" id="r1" name="janken" value1="勝ち">
118
+
119
+ ```
120
+
121
+ value属性をつけましょう。
122
+
123
+
124
+
125
+ > HTML で value 属性を省略すると、送信されたフォームデータのそのグループには on の値が割り当てられます。
126
+
127
+ [<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)
128
+
129
+
130
+
131
+ reokさんは、Pythonやる前に、まずきちんとHTMLを学んだ方がいいのかもしれないですね。

2

質問の編集を受けて追記

2020/03/18 10:27

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -83,3 +83,19 @@
83
83
 
84
84
 
85
85
  URLが間違っているように思えます。
86
+
87
+
88
+
89
+ ### 質問の編集を受けて追記
90
+
91
+
92
+
93
+ >File "c:/Users/test/server.py", line 16, in post
94
+
95
+ >user_choice = radio[name]
96
+
97
+
98
+
99
+ ラジオボタンのHTMLの書き方が間違っています。`name_3`のような属性は有効ではありません。
100
+
101
+ [<INPUT type="radio">-HTMLタグリファレンス](http://www.htmq.com/html/input_radio.shtml)

1

質問の補足を受けて追記

2020/03/18 08:12

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36134

test CHANGED
@@ -49,3 +49,37 @@
49
49
  その他、定義されていない変数がたくさんありますが、もしかして、これはリストの添え字ですか?
50
50
 
51
51
  reokさんは、プログラミング初学者ですか? 「リストとは何か」から説明する必要がありますか?
52
+
53
+
54
+
55
+ ### 質問の補足を受けて追記
56
+
57
+
58
+
59
+ >エラーがhtml側でおきております。
60
+
61
+ >-------------------------
62
+
63
+ >Method Not Allowed
64
+
65
+ >The method is not allowed for the requested URL.
66
+
67
+
68
+
69
+ ```html
70
+
71
+ <form action="/" method="POST" enctype="multipart/form-data">
72
+
73
+ ```
74
+
75
+
76
+
77
+ ```python
78
+
79
+ @app.route('/zyanken', methods=['POST'])
80
+
81
+ ```
82
+
83
+
84
+
85
+ URLが間違っているように思えます。