質問編集履歴

8

内容更新

2022/02/09 02:03

投稿

shuuuu
shuuuu

スコア10

test CHANGED
@@ -1 +1 @@
1
- Pythonプログラムの実行結果ブラウザに表示した
1
+ Pythonプログラムの実行結果ブラウザにできな
test CHANGED
File without changes

7

質問内容、ソースコード更新

2022/02/08 16:12

投稿

shuuuu
shuuuu

スコア10

test CHANGED
File without changes
test CHANGED
@@ -15,9 +15,11 @@
15
15
   │ └mahjong.html
16
16
   └main.py
17
17
 
18
- "localhost:8080/"に表示されているサブミットを押下したら、"localhost:8080/mahjong"のページ移動するようにしていますが、main.pyで実行している計算結果(print_hand_result(result))がNoneと表示されてしまっています。
18
+ "localhost:8080/"に表示されているサブミットを押下したら、"localhost:8080/mahjong"のページ移動するようにしていますが、main.pyで実行している計算結果(print_hand_result(result))がNoneと表示されてしまっています。(main.py)を実行したあと、起動するIDLEには計算結果が表示されています。
19
19
 
20
+ ブラウザ上にresultのみを表示した場合は結果が表示されるので、print_hand_resultが原因であることまでは分かっています。
21
+
20
- 計算結果を表示できるようにしたいのですが、どのようにしたらよいでしょうか。
22
+ (print_hand_result(result))を表示できるようにしたいのですが、どのようにしたらよいでしょうか。
21
23
  ご教授お願い致します。
22
24
 
23
25
  ## 発生しているエラー

6

更新

2022/02/08 14:12

投稿

shuuuu
shuuuu

スコア10

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,7 @@
1
1
  Python初心者です。
2
2
  Pythonで作成したプログラム(簡単な計算/mahjongライブラリ)をbottleフレームワークを使用してWEBブラウザに表示したいと考えています。
3
3
 
4
+ ※一部修正しました
4
5
 
5
6
  ## 実行環境
6
7
  Python3.8以上
@@ -11,13 +12,12 @@
11
12
  project
12
13
   ├views
13
14
  │ ├index.html
14
-  │ └cgi-bin
15
-  │ └mj.py
15
+  │ └mahjong.html
16
16
   └main.py
17
17
 
18
- "localhost:8080/mahjong"に表示されているサブミットを押下したら、"localhost:8080/cgi-bin/mj.py"ページ移動するようにしていますが、405エラーか404エラーが表示されてしまっています。
18
+ "localhost:8080/"に表示されているサブミットを押下したら、"localhost:8080/mahjong"ページ移動するようにしていますが、main.pyで実行している計算結果(print_hand_result(result))Noneと表示されてしまっています。
19
19
 
20
- サブミットを押下することで、mj.pyの実行結果を表示できるようにしたいのですが、どのようにしたらよいでしょうか。
20
+ 計算結果を表示できるようにしたいのですが、どのようにしたらよいでしょうか。
21
21
  ご教授お願い致します。
22
22
 
23
23
  ## 発生しているエラー
@@ -33,71 +33,21 @@
33
33
  ImportWarning: _ImportRedirect.find_spec() not found; falling back to find_module()
34
34
  ```
35
35
 
36
- ```該当ページアクセス
37
- Exception occurred during processing of request from ('127.0.0.1', 51048)
38
- Traceback (most recent call last):
39
- File "C:\Python\lib\socketserver.py", line 316, in _handle_request_noblock
40
- self.process_request(request, client_address)
41
- File "C:\Python\lib\socketserver.py", line 347, in process_request
42
- self.finish_request(request, client_address)
43
- File "C:\Python\lib\socketserver.py", line 360, in finish_request
44
- self.RequestHandlerClass(request, client_address, self)
45
- File "C:\Python\lib\socketserver.py", line 747, in __init__
46
- self.handle()
47
- File "C:\Python\lib\wsgiref\simple_server.py", line 118, in handle
48
- self.raw_requestline = self.rfile.readline(65537)
49
- File "C:\Python\lib\socket.py", line 705, in readinto
50
- return self._sock.recv_into(b)
51
- ```
52
-
53
-
54
-
55
36
  ## ソースコード
56
37
 
57
38
  ```main.py
58
- #-*- coding: utf-8 -*-
39
+ # -*- coding: utf-8 -*-
59
- from bottle import route, run, template,static_file
40
+ from bottle import route, run, template,view
41
+
60
42
  import mahjong
61
43
  import os
62
-
63
- @route('/mahjong')
64
- def main():
65
- return template('index.html')
66
-
67
- @route('/cgi-bin/<filename>',method=["GET","POST"])
68
- def static(filename):
69
- return static_file(filename,root=".\cgi-bin")
70
-
71
- run(host='localhost', port=8080, debug=True)
72
- ```
73
-
74
-
75
- ```index.html
76
-
77
- <html>
78
- <head>
79
- <meta http-equiv="content-type" content="text/html;charset=utf-8">
80
- </head>
81
- <body>
82
- <center><br><br>
83
- <form action="/cgi-bin/mj.py" method="POST">
84
- <h1><font color="#FF7F50">麻雀点数計算</font></h1><br /><br />
85
-    <input type="submit" value="結果を表示" />
86
- </form>
87
- </center>
88
- </body>
89
- </html>
90
- ```
91
-
92
-
93
- ```mj.py
94
-
95
- #-*- coding: utf-8 -*-
96
- #!/usr/bin/env python
97
-
98
44
  import cgi
99
45
  import sys
100
46
  import io
47
+
48
+ @route('/')
49
+ def index():
50
+ return template('index.html')
101
51
 
102
52
  #計算
103
53
  from mahjong.hand_calculating.hand import HandCalculator
@@ -135,7 +85,7 @@
135
85
  #鳴き(なし)
136
86
  melds = None
137
87
 
138
- #ドラ(表示牌,裏ドラ)
88
+ 54#ドラ(表示牌,裏ドラ)
139
89
  dora_indicators = [
140
90
  TilesConverter.string_to_136_array(pin='7')[0],
141
91
  TilesConverter.string_to_136_array(sou='9')[0],
@@ -146,7 +96,56 @@
146
96
 
147
97
  #計算
148
98
  result = calculator.estimate_hand_value(tiles, win_tile,melds,dora_indicators, config)
99
+
100
+ @route('/mahjong',method=["GET","POST"])
101
+ def mahjong():
149
- print_hand_result(result)
102
+ a=print_hand_result(result)
103
+ return template('mahjong.html',mahjong=a)
104
+
105
+ if __name__ == "__main__":
106
+ run(host='localhost', port=8080, debug=True)
150
107
 
151
108
  ```
152
109
 
110
+
111
+ ```index.html
112
+
113
+ <!DOCTYPE html>
114
+ <html lang="jp">
115
+ <html>
116
+ <head>
117
+   <meta http-equiv="content-type" content="text/html;charset=utf-8">
118
+  </head>
119
+ <body>
120
+ <center><br><br>
121
+ <form action="/mahjong" method="POST">
122
+ <h1><font color="#FF7F50">麻雀点数計算</font></h1><br /><br />
123
+    <input type="submit" value="結果を表示" />
124
+ </form>
125
+ </center>
126
+ </body>
127
+ </html>
128
+ ```
129
+
130
+
131
+ ```mahjong.html
132
+
133
+ <!DOCTYPE html>
134
+ <html lang="jp">
135
+ <html>
136
+ <head>
137
+   <meta http-equiv="content-type" content="text/html;charset=utf-8">
138
+  </head>
139
+ <body>
140
+ <center><br><br>
141
+ <h1><font color="#FF7F50">麻雀点数計算</font></h1><br /><br />
142
+   </form>
143
+ <p>
144
+ 結果は<br /><br /> 
145
+ {{ mahjong }}
146
+ </p>
147
+ </center>
148
+ </body>
149
+ </html>
150
+ ```
151
+

5

コードの指摘繁栄

2022/02/08 11:06

投稿

shuuuu
shuuuu

スコア10

test CHANGED
File without changes
test CHANGED
@@ -8,16 +8,16 @@
8
8
  mahjong 1.1.11
9
9
 
10
10
  ## ディレクトリ
11
- mysite
11
+ project
12
12
   ├views
13
13
  │ ├index.html
14
14
   │ └cgi-bin
15
-  │ └ mj.py
15
+  │ └mj.py
16
16
   └main.py
17
17
 
18
- "localhost:8080/mahjong"に表示されているサブミットを押下したら、"localhost:8080/cgi-bin/mj.py"にページ移動するようにしていますが、Error: 405 Method Not Allowedが表示されてしまっています。
18
+ "localhost:8080/mahjong"に表示されているサブミットを押下したら、"localhost:8080/cgi-bin/mj.py"にページ移動するようにしていますが、405エラーか404エラーが表示されてしまっています。
19
19
 
20
- 最終的にはmj.pyの実行結果を、サブミットを押下後に表示できるようにしたいです。
20
+ サブミットを押下することで、mj.pyの実行結果を表示できるようにしたいですが、どのようにしたらよいでしょうか
21
21
  ご教授お願い致します。
22
22
 
23
23
  ## 発生しているエラー

4

初心者アイコン

2022/02/08 09:21

投稿

shuuuu
shuuuu

スコア10

test CHANGED
File without changes
test CHANGED
@@ -64,7 +64,7 @@
64
64
  def main():
65
65
  return template('index.html')
66
66
 
67
- @route('/cgi-bin/<filename>',methond=["GET","POST"])
67
+ @route('/cgi-bin/<filename>',method=["GET","POST"])
68
68
  def static(filename):
69
69
  return static_file(filename,root=".\cgi-bin")
70
70
 
@@ -82,7 +82,7 @@
82
82
  <center><br><br>
83
83
  <form action="/cgi-bin/mj.py" method="POST">
84
84
  <h1><font color="#FF7F50">麻雀点数計算</font></h1><br /><br />
85
-    <input type="submit" name="結果を表示" />
85
+    <input type="submit" value="結果を表示" />
86
86
  </form>
87
87
  </center>
88
88
  </body>

3

エラーコードを追加

2022/02/08 06:03

投稿

shuuuu
shuuuu

スコア10

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,6 @@
1
1
  Python初心者です。
2
2
  Pythonで作成したプログラム(簡単な計算/mahjongライブラリ)をbottleフレームワークを使用してWEBブラウザに表示したいと考えています。
3
+
3
4
 
4
5
  ## 実行環境
5
6
  Python3.8以上

2

実行環境の追加

2022/02/08 05:33

投稿

shuuuu
shuuuu

スコア10

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,5 @@
1
1
  Python初心者です。
2
- Pythonで作成したプログラム(簡単な計算)をbottleを使用してブラウザに表示したいと考えています。
2
+ Pythonで作成したプログラム(簡単な計算/mahjongライブラリ)をbottleフレームワークを使用してWEBブラウザに表示したいと考えています。
3
3
 
4
4
  ## 実行環境
5
5
  Python3.8以上
@@ -14,10 +14,42 @@
14
14
   │ └ mj.py
15
15
   └main.py
16
16
 
17
- "localhost:8080/mahjong"に表示されているサブミットを押下したら、"localhost:8080/cgi-bin/mj.py"にページ移動するようにしてい、Error: 405 Method Not Allowedが表示されてしまっています。
17
+ "localhost:8080/mahjong"に表示されているサブミットを押下したら、"localhost:8080/cgi-bin/mj.py"にページ移動するようにしていますが、Error: 405 Method Not Allowedが表示されてしまっています。
18
18
 
19
19
  最終的にはmj.pyの実行結果を、サブミットを押下後に表示できるようにしたいです。
20
+ ご教授お願い致します。
21
+
22
+ ## 発生しているエラー
23
+
24
+ ```main.py起動時
25
+ Bottle v0.12.19 server starting up (using WSGIRefServer())...
26
+ Listening on http://localhost:8080/
27
+ Hit Ctrl-C to quit.
28
+
29
+
30
+ Warning (from warnings module):
31
+ File "<frozen importlib._bootstrap>", line 914
32
+ ImportWarning: _ImportRedirect.find_spec() not found; falling back to find_module()
33
+ ```
34
+
35
+ ```該当ページアクセス
36
+ Exception occurred during processing of request from ('127.0.0.1', 51048)
37
+ Traceback (most recent call last):
38
+ File "C:\Python\lib\socketserver.py", line 316, in _handle_request_noblock
39
+ self.process_request(request, client_address)
40
+ File "C:\Python\lib\socketserver.py", line 347, in process_request
20
- 初心者故、間違っている箇所が多々あるかと思っておりますが、ご教授お願い致します。
41
+ self.finish_request(request, client_address)
42
+ File "C:\Python\lib\socketserver.py", line 360, in finish_request
43
+ self.RequestHandlerClass(request, client_address, self)
44
+ File "C:\Python\lib\socketserver.py", line 747, in __init__
45
+ self.handle()
46
+ File "C:\Python\lib\wsgiref\simple_server.py", line 118, in handle
47
+ self.raw_requestline = self.rfile.readline(65537)
48
+ File "C:\Python\lib\socket.py", line 705, in readinto
49
+ return self._sock.recv_into(b)
50
+ ```
51
+
52
+
21
53
 
22
54
  ## ソースコード
23
55
 
@@ -101,9 +133,6 @@
101
133
 
102
134
  #鳴き(なし)
103
135
  melds = None
104
- ```
105
-
106
-
107
136
 
108
137
  #ドラ(表示牌,裏ドラ)
109
138
  dora_indicators = [

1

2022/02/08 02:40

投稿

shuuuu
shuuuu

スコア10

test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,7 @@
4
4
  ## 実行環境
5
5
  Python3.8以上
6
6
  bottle 0.12.19
7
+ mahjong 1.1.11
7
8
 
8
9
  ## ディレクトリ
9
10
  mysite