Django-sessionの格納場所
django-session格納場所
セッションの保存場所を設定するには、次の3つの方法があります.リレーショナル・データベース(db) に保存キャッシュデータベース(cache)またはリレーショナル+キャッシュデータベース(cache_db) に保存する.
ファイルシステムに保存(file)
第1種
データベースに保存:INSTALL_APPSに追加:django.contrib.sessions(デフォルトでプロジェクトを作成するときに追加)を選択し、移行します.
第2種
キャッシュに保存
cacheにのみ保存注意:Djangoデフォルト構成
次のように変更します.
メモリオーバーフローで見つからない可能性があります
dbもcacheも保存し、検索するときはcacheで検索し、見つからない場合はdbで検索します.
次のように変更します.
より安全、推奨
第3種
ファイルシステムに保存:
構成:
補足1
補足2
Djangoのセッションをredisデータベースに配置する方法
django-redis-sessionライブラリを直接使用
pip install django-redis-sessions
構成:
補足3
キャッシュをredisに設定する方法:
セッションの保存場所を設定するには、次の3つの方法があります.
ファイルシステムに保存(file)
第1種
データベースに保存:INSTALL_APPSに追加:django.contrib.sessions(デフォルトでプロジェクトを作成するときに追加)を選択し、移行します.
第2種
キャッシュに保存
cacheにのみ保存注意:Djangoデフォルト構成
SESSION_ENGINE = ‘django.contrib.sessions.backends.db’
次のように変更します.
SESSION_ENGINE = ‘django.contrib.sessions.backends.cache’
メモリオーバーフローで見つからない可能性があります
dbもcacheも保存し、検索するときはcacheで検索し、見つからない場合はdbで検索します.
次のように変更します.
SESSION_ENGINE = ‘django.contrib.sessions.backends.cache_db’
より安全、推奨
第3種
ファイルシステムに保存:
構成:
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
SESSION_FILE_PATH = 'xxx' # ( ,Django tempfile.gettempdir())
補足1
a. settings.py session
SESSION_ENGINE = 'django.contrib.sessions.backends.db' # ( )
SESSION_COOKIE_NAME = "sessionid" # Session cookie key, :sessionid= ( )
SESSION_COOKIE_PATH = "/" # Session cookie ( )
SESSION_COOKIE_DOMAIN = None # Session cookie ( )
SESSION_COOKIE_SECURE = False # Https cookie( )
SESSION_COOKIE_HTTPONLY = True # Session cookie http ( )
SESSION_COOKIE_AGE = 1209600 # Session cookie (2 )( )
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Session ( )
SESSION_SAVE_EVERY_REQUEST = False # Session, ( )
補足2
Djangoのセッションをredisデータベースに配置する方法
django-redis-sessionライブラリを直接使用
pip install django-redis-sessions
構成:
SESSION_ENGINE = 'redis_sessions.session'
SESSION_REDIS = {
'host': 'localhost',
'port': 6379,
'db': 0,
'password': 'password',
'prefix': 'session',
'socket_timeout': 1
}
補足3
キャッシュをredisに設定する方法:
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}