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

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

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

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

PyCharm

エディター・開発ツール

Q&A

解決済

1回答

2533閲覧

キャッシュを無効にしたい

Majespy

総合スコア22

Flask

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

PyCharm

エディター・開発ツール

0グッド

0クリップ

投稿2018/10/29 13:27

編集2018/10/29 17:03

前提・実現したいこと

Python(Flask)を利用して、Excelファイルを送信、それを基にグラフを作成し画像として返すWebページを作成しています。

①Excelファイルを選択し、送信
イメージWebページ

②グラフ化し、画像を返す
イメージグラフ

発生している問題

1回目は正しく動作するが、2回目以降は1回目で作成された画像が返される。
(PyCharm内で作成されたグラフ画像を確認すると、前回の画像は削除され新たに正しいグラフ画像が作成されています)

1回目
イメージ説明
イメージ説明
2回目以降
イメージ説明
イメージ説明
※TextExcel01.xlsxとTextExcel02.xlsxの内容は同値ではありません

補足情報

・ポート番号を変更し、実行すると正しく動作します。(当該ポート番号の1回目のみ)
・ブラウザ機能からキャッシュを削除すると正しく動作します。
2回目以降の実行はブラウザの戻るをクリックし行っています。

環境

開発環境:PyCharm
サーバ :localhost
ブラウザ:Chrome

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

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

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

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

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

guest

回答1

0

ベストアンサー

PyCharm内で作成されたグラフ画像を確認すると、前回の画像は削除され新たに正しいグラフ画像が作成されています

ブラウザキャッシュなのではないでしょうか。
https://qiita.com/hkusu/items/d40aa8a70bacd2015dfa

投稿2018/10/29 13:39

mather

総合スコア6753

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

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

Majespy

2018/10/29 13:59

ご回答ありがとうございます。 head内に<meta http-equiv="Cache-Control" content="no-cache"><meta http-equiv="Expires" content="0">を追加してみましたが、問題は解決されませんでした。
mather

2018/10/29 17:04

それはページそのものへのキャッシュコントロールですよね? 画像を送信するときのレスポンスヘッダを確認してください。 またキャッシュの排除をするには都度新しいURLになるようにすることも有効です。 例えばクエリ文字列にランダムな値をセットするなど。
hayataka2049

2018/10/29 17:12

画像URLをランダム生成する、とかが無難なのでしょうか
mather

2018/10/30 01:08

同じファイルを上書き保存している点が気になっていて、なにか理由があるのかな、と気になっています。
Majespy

2018/10/30 12:36

「基になるExcelファイルが同じものであるため」ということでしょうか。
mather

2018/10/30 15:15 編集

む…そもそも実際にどういうHTTP通信が行われているかわかっていないということでしょうか。 FlaskのレスポンスとしてHTMLをブラウザが受信し、そのHTMLに記述されている画像ファイルへのリンクを再びリクエストして画像データをレスポンスとして受け取っているはずです。 その画像データのリクエストが1回目のリクエストと全く同じURLであるため、ブラウザが「すでに取得済みなので再び読み込みに行く必要がない」と判断して同じ画像を表示している、というのがブラウザキャッシュです。 Chromeブラウザであれば、デベロッパーツールを開いて Network タブを選択し、 Disable cache にチェックを入れておけば、デベロッパーツールを開いている間は一時的にキャッシュを無効化できます。お試しください。
Majespy

2018/10/31 13:59

Disable cacheにチェックを入れた場合、正しく動作しました。 ご指摘の通りでございます。サーバに何かを渡し、何かを返すという処理に今回初めて挑戦しわからないことだらけの中なんとかここまで開発してきました。ブラウザキャッシュという言葉も初めて聞いた言葉です。的外れなことを聞いていたかもしれませんが、最後までご丁寧に教えて頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問