o ǎ_ @sDddlmZddlmZmZmZddlmZdZGdddeZ dS))settings) CreateError SessionBase UpdateError)cacheszdjango.contrib.sessions.cachecsjeZdZdZeZdfdd ZeddZddZ d d Z dd d Z ddZ dddZ eddZZS) SessionStorez& A cache-based session store. Ncsttj|_t|dSN)rrSESSION_CACHE_ALIAS_cachesuper__init__self session_key __class__H/usr/lib/python3/dist-packages/django/contrib/sessions/backends/cache.pyr s zSessionStore.__init__cCs|j|Sr)cache_key_prefix_get_or_create_session_key)rrrr cache_keyszSessionStore.cache_keycCs@z |j|j}Wn tyd}Ynw|dur|Sd|_iSr)r getr Exception _session_key)r session_datarrrloads zSessionStore.loadc CsNtdD]}||_z|jddWn tyYqwd|_dStd)Ni'T) must_createzOUnable to create a new session key. It is likely that the cache is unavailable.)range_get_new_session_keyrsavermodified RuntimeError)rirrrcreate$s   zSessionStore.createFcCsn|jdur |S|r|jj}n|j|jdur|jj}nt||j|j|d| }|r3|s5t dSdS)N)no_load) rr#r addrrsetr _get_sessionget_expiry_ager)rrfuncresultrrrr6s    zSessionStore.savecCst|o |j||jvSr)boolrr r rrrexistsEszSessionStore.existscCs2|dur|jdur dS|j}|j|j|dSr)rr deleterr rrrr-Hs  zSessionStore.deletecCsdSrr)clsrrr clear_expiredOszSessionStore.clear_expiredr)F)__name__ __module__ __qualname____doc__ KEY_PREFIXrr propertyrrr#rr,r- classmethodr/ __classcell__rrrrr s   rN) django.confr%django.contrib.sessions.backends.baserrrdjango.core.cacherr4rrrrrs