バックエンドに、キャッシュを使ってます。
プロジェクトの雛形は、こちらを参考にしましたが、Django1.4 では、CACHE_BACKEND = 'memcached:///' は使えません..
1.ディレクトリー構成
Django1.4標準のディレクトリ構成とは若干異なりますが、あまり気にしなくても良いかと。/app
app.yaml
main.py
favicon.ico
/project
__init.py__
settings.py
urls.py
views.py
/templates
index.html
2.app.yaml
Python2.7 + Django1.4 を使います。-- app.yaml --
application: <アプリケーション名>
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: .*
script: main.app
libraries:
- name: django
version: "1.4"
3.main.py
sysモジュール'memcache'を、google.appengine.api.memcacheにエイリアスしています。-- main.py --
import os, sys
import django.core.handlers.wsgi
from google.appengine.api import memcache
sys.modules['memcache'] = memcache
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
app = django.core.handlers.wsgi.WSGIHandler()
4.settings.py
MIDDLEWARE_CLASSES に、SessionMiddleware を追加。SESSION_ENGINE には、キャッシュを使います。
CACHES の BACKEND に、memcached を使います。
-- settings.py --
import os
DEBUG = True
TIME_ZONE = 'Asia/Tokyo'
USE_TZ = False
LANGUAGE_CODE = 'ja-jp'
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
)
INSTALLED_APPS = (
'django.contrib.humanize',
'project'
)
ROOT_URLCONF = 'project.urls'
ROOT_PATH = os.path.dirname(__file__)
TEMPLATE_DIRS = (
ROOT_PATH + '/templates',
)
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
}
}
5.views.py
セッションデータの書き込みrequest.session['<キー名>'] = '<データ>'
セッションデータの読み出し
xxx = request.session['<キー名>']
6.参考
セッションの使い方http://docs.djangoproject.jp/ja/latest/topics/http/sessions.html
キャッシュフレームワーク
http://docs.djangoproject.jp/ja/latest/topics/cache.html#topics-cache
0 件のコメント:
コメントを投稿