質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2770閲覧

flaskで登録した画像が表示されない

sandalwalk

総合スコア77

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/01/19 03:32

編集2022/01/19 04:13

jinjaファイル側で作成(編集)した画像をAjaxでflask側にPOSTして、pngファイルとして保存、-- > そのファイルを他のjinjaファイルで呼び出したいと考えていますが、うまく動作しません。
HTMLファイル等で保存した画像を表示することが出来ているのに、flaskで表示されない理由が分からず困っています。ご教示お願い致します。

試した事:
1、以下のコードで作成した画像ファイルをダブルクリック -- > 問題無く開く
2、jinjaではなく、シンプルにHTMLファイルを作成し、その中で以下のコードで作成したファイルパスを指定すると、画像が表示される.
3、以下コードで作成したファイルパスをjinjaファイル中で指定すると、以下のエラーが出て画像が表示されない。

"GET /package/upload/pictures/12.png HTTP/1.1" 404 -

以下がflask側でPOSTを受けた後の処理です。

python

1... 2if request.method == "POST": 3 enc_data = request.form['image'] 4 dec_data = base64.b64decode(enc_data.split(',')[1]) 5 dec_img = Image.open(BytesIO(dec_data)) 6 filepath = 'package/upload/pictures/' + str(new_menu_id) + '.png' 7 dec_img.save(filepath)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

/package/upload/pictures/12.pngに該当するrouteが無いんだと思います。

以下のサイトが参考になると思います。
staticディレクトリの追加

投稿2022/01/19 07:44

FiroProchainezo

総合スコア2401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sandalwalk

2022/01/19 08:31

回答ありがとうございます。頂いた情報を参考にして試してみたところ、以下の様になりました。 まず、保存先のディレクトリですが、 /package/static/pictures にしました。メインプログラムは/packageの直下に有ります。 この条件で、/pictures の中に画像ファイルを保存して、データベースに保存先URLを /package/static/pictures/test.png と保存してjinjaからこのURLを呼び出すとNGでした。 次に、画像ファイルの保存先はそのままで、データベースに保存するURLを /static/test.png としてこのURLをjinjaから画像を呼び出すことが出来ました。 どうやら画像ファイルをstaticの下に保存する事だけで無く、呼び出す時に/static で始まるURLで呼び出さないとjinjaが理解してくれない様です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問