質問編集履歴
1
io\.BytesIOの使い方は、解決しました。render_templateの使い方が解決していないのアドバイスをお願いします。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
PythonのFlaskでの
|
1
|
+
PythonのFlaskでのrender_templateで画像ファイルの表示方法
|
body
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
###前提・実現したいこと
|
2
2
|
PythonのFlaskのフレームワークを用いて、QRコードを作成して、それを表示させるプログラムを作成しています。(python3)
|
3
|
-
わからないこと
|
3
|
+
わからないこと
|
4
|
-
|
4
|
+
QRコードをio.BytesIO()に保存したのち、
|
5
|
-
(
|
5
|
+
(1)render_template()を使ってこの画像をHTMLに当てはめる方法
|
6
|
-
(
|
6
|
+
(2)HTML側のテンプレートの記載方法
|
7
7
|
|
8
8
|
###発生している問題・エラーメッセージ
|
9
9
|
|
10
|
-
HTMLに画像が表示されません
|
10
|
+
HTMLに画像が表示されません。404エラーが出ます。
|
11
11
|
|
12
12
|
|
13
13
|
###該当のソースコード
|
@@ -30,19 +30,21 @@
|
|
30
30
|
return render_template('index.html',time=timeString)
|
31
31
|
|
32
32
|
|
33
|
-
# code generater and output
|
34
33
|
@app.route('/input_code', methods=['POST'])
|
35
34
|
def input_code():
|
36
35
|
code_input = request.form['code']
|
37
|
-
qr_img =
|
36
|
+
qr_img = QRmaker(code_input)
|
38
|
-
|
39
|
-
#ここの使い方がわかりません。
|
40
37
|
img_bin = io.BytesIO()
|
41
38
|
qr_img.save(img_bin, 'png')
|
39
|
+
#seek(0)が必要
|
42
|
-
|
40
|
+
img_bin.seek(0)
|
41
|
+
# Responseやsend_fileだとうまく表示されます。
|
42
|
+
return Response(img_bin, mimetype='image/png')
|
43
|
+
#return send_file(img_bin, mimetype='image/png')
|
43
44
|
|
44
|
-
#ここの記述の仕方がわかりません
|
45
|
+
#ここの記述の仕方がわかりません。404エラーが出ます。
|
46
|
+
#fig_url=img_bin
|
45
|
-
return render_template("output_code.html", data=code_input,
|
47
|
+
#return render_template("output_code.html", data=code_input,fig=fig_url)
|
46
48
|
|
47
49
|
# retry and quit
|
48
50
|
@app.route('/event', methods=['POST'] )
|
@@ -97,18 +99,10 @@
|
|
97
99
|
<h2>{{data}}</h2>
|
98
100
|
|
99
101
|
<h2>QR image</h2>
|
102
|
+
<!--ここの記述があっているかどうかわかりません。-->
|
100
103
|
<img src="{{fig }}">
|
101
104
|
</body>
|
102
105
|
</html>
|
103
106
|
```
|
104
107
|
|
105
|
-
###補足情報
|
108
|
+
###補足情報
|
106
|
-
レスポンスの方法がいくつかあるように感じますが、レスポンスの種類と使い方について教えていただけるとありがたいです。
|
107
|
-
レスポンスの種類(return)の後に書く関数は、
|
108
|
-
(1) render_template()
|
109
|
-
→テンプレートに値をはめ込む?
|
110
|
-
(2) redirect()
|
111
|
-
→違うURLに飛ばす?
|
112
|
-
(3) Response()
|
113
|
-
(4) send_file()
|
114
|
-
などがありますが、このうち(3),(4)はどのような時に使うかを教えていただけるとありがたいです。
|