ジャンゴ·キャッシュutils2は、キャッシュされたデコレータを提供し、機能を無効にDjangoのアプリです。
インストール
ジャンゴ·キャッシュutils2をインストールピップ
利用
cache_utils2インポートキャッシュされてから、無効
@cached(60)
デフFOO(X、Y = 0)。
  'fooが呼ばれている「印刷
  X + Yを返します
FOO(1、2)#fooが呼ばれています
FOO(1、Y = 2)
FOO(5、6)#fooが呼ばれています
FOO(5、6)
無効(FOO、{'X':1、 'Y':2})
FOO(1、2)#fooが呼ばれています
FOO(5、6)
FOO(X = 2)#fooが呼ばれています
FOO(X = 2)
Fooクラス(オブジェクト):
  @cached(60)
 デフのfoo(自己、x、y)は:
 印刷 "fooが呼ばれています"
  X + Yを返します
OBJ =はFoo()
obj.foo(1,2)#fooが呼ばれています
obj.foo(1,2)
無効(Foo.foo、{'X':1、 'Y':2})
obj.foo(1,2)#fooが呼ばれています
Djangoの例
django.db輸入モデルから
cache_utils2インポートキャッシュされてから、無効
クラスCityManager(models.Manager):
 #キャッシュ方法の結果。 「自己」パラメータは無視されます
  @cached(60 * 60 * 24)
  defはデフォルト(自己):
 戻りself.active()[0]
 #キャッシュ方法の結果。 「自己」パラメータは無視され、引数と
 #1 kwargsからは、キャッシュキーを構築するために使用されます
  @cached(60 * 60 * 24)
 デフ(自己、* argsは、** kwargsから)を得ます:
 リターンスーパー(CityManager、自己).get(* argsを、** kwargsから)
クラスシティー(models.Model):
 #...フィールド宣言
 オブジェクト= CityManager()
 インスタンスPKで#キャッシュDjangoのモデルインスタンスメソッドの結果
  @cached(30、= 'self.pk'を変化させます)
 デフhas_offers(自己):
 戻りself.offer_set.count()> 0
モデルのメソッドの#の無効化
無効(City.has_offers、{'self.pk':1}
注釈
装飾された関数が返す場合cache_utils2.NO_CACHEキャッシュがバイパスされます。
テストを実行します
ソースコードを取得し、runtests.pyを実行します。
要件:ます。
Pythonの
ジャンゴ
コメントが見つかりません