質問編集履歴
1
io\.BytesIOの使い方は、解決しました。render_templateの使い方が解決していないのアドバイスをお願いします。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
PythonのFlaskでの
|
1
|
+
PythonのFlaskでのrender_templateで画像ファイルの表示方法
|
test
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
|
3
3
|
PythonのFlaskのフレームワークを用いて、QRコードを作成して、それを表示させるプログラムを作成しています。(python3)
|
4
4
|
|
5
|
-
わからないこと
|
5
|
+
わからないこと
|
6
|
-
|
6
|
+
|
7
|
-
|
7
|
+
QRコードをio.BytesIO()に保存したのち、
|
8
|
-
|
8
|
+
|
9
|
-
(
|
9
|
+
(1)render_template()を使ってこの画像をHTMLに当てはめる方法
|
10
|
-
|
10
|
+
|
11
|
-
(
|
11
|
+
(2)HTML側のテンプレートの記載方法
|
12
12
|
|
13
13
|
|
14
14
|
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
HTMLに画像が表示されません
|
19
|
+
HTMLに画像が表示されません。404エラーが出ます。
|
20
20
|
|
21
21
|
|
22
22
|
|
@@ -62,31 +62,35 @@
|
|
62
62
|
|
63
63
|
|
64
64
|
|
65
|
-
# code generater and output
|
66
|
-
|
67
65
|
@app.route('/input_code', methods=['POST'])
|
68
66
|
|
69
67
|
def input_code():
|
70
68
|
|
71
69
|
code_input = request.form['code']
|
72
70
|
|
73
|
-
qr_img =
|
71
|
+
qr_img = QRmaker(code_input)
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
#ここの使い方がわかりません。
|
78
72
|
|
79
73
|
img_bin = io.BytesIO()
|
80
74
|
|
81
75
|
qr_img.save(img_bin, 'png')
|
82
76
|
|
77
|
+
#seek(0)が必要
|
78
|
+
|
79
|
+
img_bin.seek(0)
|
80
|
+
|
81
|
+
# Responseやsend_fileだとうまく表示されます。
|
82
|
+
|
83
|
+
return Response(img_bin, mimetype='image/png')
|
84
|
+
|
85
|
+
#return send_file(img_bin, mimetype='image/png')
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
#ここの記述の仕方がわかりません。404エラーが出ます。
|
90
|
+
|
83
|
-
fig_url=img_bin
|
91
|
+
#fig_url=img_bin
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
92
|
+
|
88
|
-
|
89
|
-
return render_template("output_code.html", data=code_input,
|
93
|
+
#return render_template("output_code.html", data=code_input,fig=fig_url)
|
90
94
|
|
91
95
|
|
92
96
|
|
@@ -196,6 +200,8 @@
|
|
196
200
|
|
197
201
|
<h2>QR image</h2>
|
198
202
|
|
203
|
+
<!--ここの記述があっているかどうかわかりません。-->
|
204
|
+
|
199
205
|
<img src="{{fig }}">
|
200
206
|
|
201
207
|
</body>
|
@@ -207,21 +213,3 @@
|
|
207
213
|
|
208
214
|
|
209
215
|
###補足情報
|
210
|
-
|
211
|
-
レスポンスの方法がいくつかあるように感じますが、レスポンスの種類と使い方について教えていただけるとありがたいです。
|
212
|
-
|
213
|
-
レスポンスの種類(return)の後に書く関数は、
|
214
|
-
|
215
|
-
(1) render_template()
|
216
|
-
|
217
|
-
→テンプレートに値をはめ込む?
|
218
|
-
|
219
|
-
(2) redirect()
|
220
|
-
|
221
|
-
→違うURLに飛ばす?
|
222
|
-
|
223
|
-
(3) Response()
|
224
|
-
|
225
|
-
(4) send_file()
|
226
|
-
|
227
|
-
などがありますが、このうち(3),(4)はどのような時に使うかを教えていただけるとありがたいです。
|