私は簡単なWebアプリケーションでdjangoキャッシュフレームワークを実装する方法を学んでいました。データベースへのDjango per-viewキャッシング
私はpostgresqlデータベースを使用しました。私はmy_cache_tableを作成しました。 "per-view cache"テクニックを使用しようとしましたが、動作しません。 my_cache_tableにデータベースエントリが作成されていません。
#settings.py
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# Database
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'my_cache_table',
'TIMEOUT': 3600,
'OPTIONS': {
'MAX_ENTRIES': 1000
}
}
}
#urls.py
urlpatterns = [
url(r'^$', views.search_form),
url(r'^s', cache_page(60 * 60)(views.search)),
]
#views.py
from .scraper import scrape
from django.views.decorators.cache import cache_page
def search_form(request):
return render(request, 'scraper/search_form.html')
def search(request):
q = request.GET["k"]
ftitles, fprices, furls = scrape(q)
context = {'ftitles': ftitles, 'fprices': fprices , 'furls': furls , 'q': q}
return render(request, 'scraper/output.html', context)
これは私のウェブアプリがどのように機能するかである -
1.Userは
2.Keywordを検索するためのキーワードを入力するには、スクリプト「scrape.py」に送信され、処理され、出力がレンダリングされると、 output.htmlページに表示されます。
私の質問 -
検索ビューで発生屈強なプロセスを回避することができるので、私は、検索ビューの応答をキャッシュすることができればそれは素晴らしいことです。
キャッシュされた同じキーワードをユーザーが検索すると、そのプロセスを回避してキャッシュから応答を表示できます。
私がここで行方不明です何を指摘してください私は、URLでパー・ビューキャッシュを使用してみましたが、それは
を動作しません。
助けていただければ幸いです。