質問編集履歴

1

問題の具体例と、ソースコードの追加

2017/02/01 16:07

投稿

Lapinness
Lapinness

スコア7

test CHANGED
@@ -1 +1 @@
1
- Flaskで静的ファイルを使う方法
1
+ Flaskでファイルの読み書きができません
test CHANGED
@@ -1,3 +1,85 @@
1
1
  ###質問
2
2
 
3
- flaskでstaticフォルダーなどにおいてあるテキストファイル(あるいはjsonファイル)を読み書きるにはどうしたら良いでしょうか
3
+ Pythonを用いて、HTTPリクエストでPOSTされてきたメッセージをテキストファイルなどに書き込み、それをブラウザから開けようにしたいです。
4
+
5
+ ファイルに書き込むことはできていると思いますが、それをブラウザで開くことができません
6
+
7
+
8
+
9
+ ソースコードは以下の通りです
10
+
11
+ 受け取ったメッセージを変数messageに代入し、それをMessage.txtに書き込むという処理のつもりです。
12
+
13
+ Message.txtはあらかじめstaticフォルダーの中に作成しており、ある程度の文章も書き込まれています。
14
+
15
+ ログを見ると、messageは確かに受け取れており、テキストファイルにも記入されているようです。(下から8行目からのfor文でprintすると表示されてます。)
16
+
17
+ しかし、'http://(サーバーのURL)/Message.txt'にアクセスすると記入した文字は表示されません。(staticフォルダー内のMessage.txtにあらかじめ書いてある文章のみが表示されます。)
18
+
19
+ callback()でopenしているMessage.txtはいったいどこにあるファイルなのでしょうか?
20
+
21
+
22
+
23
+ 環境は、Python2.7,flask=0.11を使用し、herokuでサーバーを構築しています
24
+
25
+
26
+
27
+ ```Python
28
+
29
+ # -*- coding: utf-8 -*-
30
+
31
+
32
+
33
+ from __future__ import unicode_literals
34
+
35
+ from flask import Flask, render_template, request, abort
36
+
37
+
38
+
39
+ app = Flask(__name__, static_folder="static", static_url_path='')
40
+
41
+
42
+
43
+ @app.route("/")
44
+
45
+ def index():
46
+
47
+ return render_template('test.html')
48
+
49
+
50
+
51
+ @app.route("/callback", methods=['GET', 'POST'])
52
+
53
+ def callback():
54
+
55
+
56
+
57
+ ~~~~~受け取ったメッセージを変数messageに代入~~~~~~~
58
+
59
+
60
+
61
+ f = open('Message.txt', "a")
62
+
63
+ f.write(message.encode('utf-8'))
64
+
65
+ f = open('Message.txt', "r")
66
+
67
+ for row in f:
68
+
69
+ print row
70
+
71
+ print "Text End"
72
+
73
+ f.close()
74
+
75
+
76
+
77
+ return message.encode('utf-8')
78
+
79
+
80
+
81
+ if __name__ == "__main__":
82
+
83
+ app.run(host = '0.0.0.0')
84
+
85
+ ```