問題タブ [flask-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
521 参照

flask - Flask / Jinja メモ化

Flask-Cache の memoize 機能を使用して、キャッシュが削除される別のリクエストで特定の条件が満たされない限り、statusTS() のキャッシュされた結果のみを返すようにしています。

サーバーが停止しているため、Jinja テンプレートは実際にはオフラインで表示されるはずですが、削除されていません。そのため、キャッシュされた結果が返されるべきではないときに返されます。

ジンジャ テンプレート:

これにより、ビューがレンダリングされます。

これは、エントリを削除することになっているものです。

0 投票する
1 に答える
5768 参照

python - Flask キャッシュがキャッシュされない

Flask-Cache のチュートリアルに従って、自分で実装しようとしました。次の例では、Flask が時間をキャッシュしないのはなぜでしょうか?

出力は常に現在の時刻です。

リクエストごとにキャッシュが再作成されるようです。私は何を間違っていますか?

編集: Python 2.7.6 で次の python-file を実行します。

0 投票する
1 に答える
6702 参照

python - Flask Cache と memcached を使用して単純なキーと値のペアを保存する

Flask Cache で単純なキーと値のペアを保存するにはどうすればよいですか? このようなもの:

今は cache.cached() デコレータを使って関数の戻り値だけを保存しています。その方法は機能しますが、タイムアウトする前にその関数のキャッシュを手動でクリアする方法がわかりません。

理想的には、例のようにキーに基づいてキャッシュ値を設定できるようにしたいと考えています。memcached をバックエンドとして使用することは可能ですか?

0 投票する
1 に答える
1126 参照

python - 計算をフラスコ ルート キャッシュに保存する

python-rq ワーカー キューに入る長いタスクがあります。

私はflask-cache結果を試して保存するために使用しています。これは、多くても週に1回だけ実行する必要がある計算であり、月に1回でも十分です。

私が抱えている問題は、これを実行すると、実際の解決策ではなく、失敗した応答がキャッシュされることです。

これを行う他の方法はありますか?または、これにどのようにアプローチすべきかについての提案はありますか?

0 投票する
1 に答える
56 参照

python - ルートがタイムアウトしたため、メモ化が機能しません

私は現在のルートを持っています

これをローカルで実行すると、タイムアウトしないため正常に動作します。関数が実行された後、結果がキャッシュに保存され、その後のリロード時に即座にロードされます。しかし、ルートを実行するときにサーバーに配置すると、タイムアウトになります。

タイムアウト後にタスクが完了しても、関数をリロードすると、キャッシュから呼び出す代わりにタスクが再実行されます。

これを行うべき別の方法はありますか?

0 投票する
1 に答える
988 参照

python - Flask-Cache は GET と POST を区別しません

次のような構造のFlaskルートがあります。

特定のページの '/rootpath2/' への POST は通常、(キャッシュされた値が存在する場合) キャッシュから取得されます。これは通常、最後の GET 要求です。

たとえば、ユーザーは「/rootpath2/myform」にアクセスし、フォームに入力して送信します。フォームは '/rootpath2/myform' に送信され、ユーザーは同じ URI に返され、フォームの送信が成功したことを示すメッセージ (または、エラーが発生した場合はエラーが発生したこと) が示されます。

ここでの問題は、GET が常に POST の前にあり、POST が常にキャッシュ ヒットをトリガーしてその値を返すことです。

Flask-Cache が GET と POST を区別して処理する方法はありますか (GET のキャッシュのみ)?

0 投票する
0 に答える
151 参照

angularjs - Flask: 認証されていないユーザーにキャッシュされたアプリが表示され、ログイン ページにリダイレクトされない

認証されたユーザーにのみAngular JSアプリを提供するフラスコアプリがあります。

アプリを提供するビューのアクセス制御は、次のように Flask-Login パッケージの @login_required で実装されます。

ただし、ログアウトした後、認証されていないユーザーがこのビューを表示しようとすると、ログイン ページにリダイレクトされず、アプリのキャッシュ バージョンが表示されることに気付きました。

開発サーバーを実行している Google Chrome と Firefox でこの動作を確認しました。

認証されていないユーザーの場合にのみキャッシュなしを強制するにはどうすればよいですか? (ログインしたユーザーのキャッシュが必要な場合もあります。)(スタックオーバーフローに関する関連する質問/回答は、認証ステータスとは無関係にキャッシュ期間の無効化にのみ対処しているようです。これは、不必要な妥協だと思います。)

Firebug で XHR ログを調べると、ブラウザーが保護されたアプリ ビューに対して元の要求を行っていないことが示されているようです。キャッシュから直接ロードするだけです。

編集1:

1つの可能性は、フロントエンドアプリで認証を確認し、認証されていない場合はサインインページへのリダイレクトを強制することですが、余分なものを避けるためにこれを「自動的に」処理できるバックエンドソリューションに興味がありますフロントエンドで必要なケア (結局のところ、これは @login_required が道徳的に言えば、そうすべきだと主張している / 主張していることではないでしょうか?)。