2016-06-17 17 views
0

私は現在かなりのdjangoプロジェクトを持っています。ビューでは、後のリクエストで時間を節約するためにビュー間で共有される大きな計算を行います。サイトをアクティブにするには、シンボリックリンクを作成する、静的ファイルを収集するなどのために、manage.pyを使っていくつかのスクリプトを起動するpythonスクリプトがあります。コマンドが実行されると、プロジェクト内のすべてのアプリケーションがロードされます。この大きな計算を行います。私はこれを防止したい。理想的には、私は起動時に事前計算を1回だけ実行したいと思います。私はどちらかに必要だと思う。実際にビューをロードするからDjango Precomputation in View

  1. 防ぎmanage.py(わからないこれが可能である)
  2. resouceを要求する最初の人が複数になりますので、怠惰計算(ない理想的な初期化分)

私のオプションは何ですか?どんな助けもありがとう!あなたは、このためのAppConfigを使用することができます

答えて

0

、より具体的にAppConfig.ready()

はこのSO answerまたはこれを行う方法のマニュアルを参照してください。

編集:

1つのオプションは、Djangoのシェルから手動でスクリプトを実行することです。端末にpython manage.py shellと入力すると、これを行うことができます。モデルやビューなどをシェルにインポートし、スクリプトや関数を実行することができます。

もう1つの方法は、他の目的で使用されていないビューに計算をバインドし、この関数を実行するためのurl-pathを追加することです。その後、手動でこのURLに移動すると、計算が実行されます。

これらの方法は適していますか?

+0

これは私が最初に試したものですが、manage.pyを実行するたびに新しいAppConfigが作成され、AppConfig.ready()が実行されます。 – Championcake