生成したページは静的なままで、私のサーバーはコンテンツを再生成するリソースを無駄にしません。私はメモを書くことについて知っていますが、Flaskがこれに対して組み込みのメソッドか別のメソッドを提供しているのか疑問に思っていました。Jinjaテンプレートから静的ページを生成してFlaskで配信します
答えて
Flask-Cacheを使用できます。 Cache
インスタンスを作成することによって
スタート:CACHE_TYPE = 'simple'
は、キャッシングのためのPythonの辞書を使用していること
from flask import Flask
from flask.ext.cache import Cache
application = Flask(__name__)
cache = Cache(application, config={'CACHE_TYPE': 'simple'})
注意してください。あるいは、memcached
またはredis
を使用して、より大きなスケーラビリティを得ることができます。 またはCACHE_TYPE = 'filesystem'
を使用し、ファイルシステムにキャッシュすることができます。
その後、あなたのビュー関数を飾る:
@cache.cached(timeout=100000)
def viewfunc():
return render_template('viewtemplate.html')
Flask-Cacheを使った["無限タイムアウト"](http://stackoverflow.com/questions/17938711/how-can-i-configure-flask-cache-with-infinite-timeout)についての説明を参照してください。 –
render_template
は、文字列を生成します。文字列をファイルに保存することができます。フラスコはserve filesです。
# generate the page at some point
import os
out = render_template('page.html', one=2, cat='>dog')
with open(os.path.join(app.instance_path, 'page.html') as f:
f.write(out)
# serve it some other time
from flask import send_from_directory
return send_from_directory(app.instance_path, 'page.html')
この例は、単にファイル名をinstance folderにファイルを置きます(つまり、最初に存在することを確認してください)とハードコード。あなたの本当のアプリでは、ファイルをどこに保存したいのか、どこに呼びたいのかを知っていると思います。
このようなことがたくさんある場合は、Flask-Cacheがより適切な選択肢になります。キャッシュされたデータの格納と読み込みを処理し、より効率的なバックエンド(またはファイルシステム)に保存できます。
- 1. Flaskを使用したユーザー生成のJinja 2テンプレート
- 2. Jekyllを使用してローカルで静的ページを生成する
- 3. ajaxブートストラップタブをテンプレートと一緒にdinamicallyロードする方法jinja Flask?
- 4. スキーマから静的APIドキュメントを生成しますか?
- 5. Googleのクラウドストレージから静的ファイルを配信していますか?
- 6. Flaskで静的ファイルを送信するとUnicodeDecodeErrorが発生する
- 7. 生産現場でFlaskではなくCDNから静的ファイルを提供
- 8. 青写真テンプレートからベースフラスコJinjaテンプレートを拡張するには?
- 9. ASP.NETルーティングを使用して静的ファイルを配信する
- 10. ホームページから静的なコンテンツをルートから配信
- 11. ヒープ上に静的配列を作成しますか?
- 12. StaticGeneratorを使用してDjangoプロジェクトから静的HTMLを生成する
- 13. Flask静的ファイルCache-Control
- 14. Catalystを搭載したCDNから静的ファイルを配信する
- 15. AWS elasticbeanはFlask静的アセットを処理しません
- 16. GrizzlyWebServer + Spring + Jersey +静的コンテンツをJAR内から配信
- 17. テンプレート変換をバイパスしてFlaskアプリで生のhtmlを返す方法
- 18. jinjaテンプレートのキーでgetを使用できますか?
- 19. Cythonで静的C配列を作成できますか?
- 20. htmlフォーム入力を使用して静的htmlページを作成
- 21. .jar内からgrizzlyのStaticHttpHandlerを使って静的コンテンツを配信する
- 22. knockout.jsはテンプレートを使ってテンプレートを生成できますか?
- 23. Android Web Viewで静的ファイルをテンプレートとして使用する
- 24. 静的なUITableViewCellのUISwitchはエラーを生成します
- 25. C++ 11パラメータパックから静的配列を作成する
- 26. tomcatから静的コンテンツを配信する断続的な失敗
- 27. PythonモジュールのJinjaテンプレート(プリコンパイル済みテンプレート)
- 28. 静的ページ間でjQueryトランジションアニメーションを使用しますか?
- 29. データベースから静的なHTMLファイルを生成する
- 30. 定期的にFlaskから値を更新してレンダリングする
このようなすべてのページを表示したいのですか、特定のページのみを表示しますか? – Suever
ちょうどあるページ、確かにそれらのすべてではない。ページの内容は、アプリケーションを再起動するたびに変更される可能性があります。 – muddyfish