Django-sessionの格納場所

2579 ワード

django-session格納場所
セッションの保存場所を設定するには、次の3つの方法があります.
  • リレーショナル・データベース(db)
  • に保存
  • キャッシュデータベース(cache)またはリレーショナル+キャッシュデータベース(cache_db)
  • に保存する.
    ファイルシステムに保存(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",
            }
        }
    }