Files
pyGoEdge-UserPanel/.venv/Lib/site-packages/django/middleware/__pycache__/cache.cpython-312.pyc

89 lines
8.6 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
j<> i'!<00><00><><00>dZddlZddlmZddlmZmZddlmZm Z m
Z
m Z m Z ddl mZddlmZGd<08>d e<0E>ZGd
<EFBFBD>d e<0E>ZGd <0C>d ee<12>Zy)a<>
Cache middleware. If enabled, each Django-powered page will be cached based on
URL. The canonical way to enable cache middleware is to set
``UpdateCacheMiddleware`` as your first piece of middleware, and
``FetchFromCacheMiddleware`` as the last::
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
...
'django.middleware.cache.FetchFromCacheMiddleware'
]
This is counterintuitive, but correct: ``UpdateCacheMiddleware`` needs to run
last during the response phase, which processes middleware bottom-up;
``FetchFromCacheMiddleware`` needs to run last during the request phase, which
processes middleware top-down.
The single-class ``CacheMiddleware`` can be used for some simple sites.
However, if any other piece of middleware needs to affect the cache key, you'll
need to use the two-part ``UpdateCacheMiddleware`` and
``FetchFromCacheMiddleware``. This'll most often happen when you're using
Django's ``LocaleMiddleware``.
More details about how the caching works:
* Only GET or HEAD-requests with status code 200 are cached.
* The number of seconds each page is stored for is set by the "max-age" section
of the response's "Cache-Control" header, falling back to the
CACHE_MIDDLEWARE_SECONDS setting if the section was not found.
* This middleware expects that a HEAD request is answered with the same response
headers exactly like the corresponding GET request.
* When a hit occurs, a shallow copy of the original response object is returned
from process_request.
* Pages will be cached based on the contents of the request headers listed in
the response's "Vary" header.
* This middleware also sets ETag, Last-Modified, Expires and Cache-Control
headers on the response object.
<EFBFBD>N)<01>settings)<02>DEFAULT_CACHE_ALIAS<41>caches)<05> get_cache_key<65> get_max_age<67>has_vary_header<65>learn_cache_key<65>patch_response_headers)<01>MiddlewareMixin)<01>parse_http_date_safec<00>><00><00>eZdZdZ<03>fd<02>Zed<03><00>Zd<04>Zd<05>Z<08>xZ S)<06>UpdateCacheMiddlewarea6
Response-phase cache middleware that updates the cache if the response is
cacheable.
Must be used as part of the two-part update/fetch cache middleware.
UpdateCacheMiddleware must be the first piece of middleware in MIDDLEWARE
so that it'll get called last during the response phase.
c<00><><00><01>t<00>|<00>|<01>tj|_d|_tj |_tj|_ y<00>N)
<EFBFBD>super<65>__init__r<00>CACHE_MIDDLEWARE_SECONDS<44> cache_timeout<75> page_timeout<75>CACHE_MIDDLEWARE_KEY_PREFIX<49>
key_prefix<EFBFBD>CACHE_MIDDLEWARE_ALIAS<41> cache_alias<61><03>self<6C> get_response<73> __class__s <20><>FE:\Project\pygoedge\.venv\Lib\site-packages\django/middleware/cache.pyrzUpdateCacheMiddleware.__init__GsA<00><><00> <0A><07><18><1C>&<26>%<25>><3E>><3E><04><1A> <20><04><19>"<22>><3E>><3E><04><0F>#<23>:<3A>:<3A><04><18>c<00>(<00>t|jSr<00>rr<00>rs r<00>cachezUpdateCacheMiddleware.cacheN<00><00><00><15>d<EFBFBD>&<26>&<26>'<27>'rc<00>6<00>t|d<01>xr |jS)N<>_cache_update_cache)<02>hasattrr&)r<00>request<73>responses r<00>_should_update_cachez*UpdateCacheMiddleware._should_update_cacheRs<00><00><16>w<EFBFBD> 5<>6<>V<>7<EFBFBD>;V<>;V<>Vrc<00>p<00><00><03><04><00>j||<02>s|S|js|jdvr|S|js|jrt |d<02>r|Sd|j dd<05>vr|S<00>j<00><04><04>!t|<02><00><04><04> <0A>j<00>n<07>dk(r|St|<02><04><00>r<>|jdk(rzt||<02><04>j<00>j<00><08><00>t|d <09>r-t|j <00>r|j#<00><03><00>fd
<EFBFBD><08>|S<00>jj%<00>|<02><04>|S) zSet the cache, if needed.)<02><>i0<00>Cookie<69>privatez Cache-Control<6F>rr,<00>r#<00>renderc<00>><00><03><00>jj<00>|<00><03>Sr)r#<00>set)<04>r<> cache_keyr<00>timeouts <20><><EFBFBD>r<00><lambda>z8UpdateCacheMiddleware.process_response.<locals>.<lambda>~s<00><><00>d<EFBFBD>j<EFBFBD>j<EFBFBD>n<EFBFBD>n<EFBFBD>Y<EFBFBD><01>7<EFBFBD>Cr)r*<00> streaming<6E> status_code<64>COOKIES<45>cookiesr<00>getrrrr
r rr#r'<00>callabler1<00>add_post_render_callbackr3)rr(r)r5r6s` @@r<00>process_responsez&UpdateCacheMiddleware.process_responseUs)<00><><00><13>(<28>(<28><17>(<28>;<3B><1B>O<EFBFBD> <13> <1D> <1D><18>!5<>!5<>Z<EFBFBD>!G<><1B>O<EFBFBD>
<18><0F><0F><18> <20> <20><1F><08>(<28>3<><1B>O<EFBFBD> <15><08> <0C> <0C>_<EFBFBD>b<EFBFBD>9<> 9<><1B>O<EFBFBD><17>#<23>#<23><07> <12>?<3F>"<22>(<28>+<2B>G<EFBFBD><16><EFBFBD><1E>,<2C>,<2C><07><18>A<EFBFBD><1C><1F><0F><1E>x<EFBFBD><17>1<> <12>x<EFBFBD>+<2B>+<2B>s<EFBFBD>2<>'<27><17><18>7<EFBFBD>D<EFBFBD>O<EFBFBD>O<EFBFBD>4<EFBFBD>:<3A>:<3A><0E>I<EFBFBD><17>x<EFBFBD><18>*<2A>x<EFBFBD><08><0F><0F>/H<><18>1<>1<>C<><12>
<18><0F><15>
<EFBFBD>
<EFBFBD><0E><0E>y<EFBFBD>(<28>G<EFBFBD><<3C><17>r)
<EFBFBD>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r<00>propertyr#r*r?<00> __classcell__<5F>rs@rrr=s,<00><><00><08>;<3B><0E>(<28><0E>(<28>W<01>-rrc<00>8<00><00>eZdZdZ<03>fd<02>Zed<03><00>Zd<04>Z<07>xZS)<05>FetchFromCacheMiddlewarea!
Request-phase cache middleware that fetches a page from the cache.
Must be used as part of the two-part update/fetch cache middleware.
FetchFromCacheMiddleware must be the last piece of middleware in MIDDLEWARE
so that it'll get called last during the request phase.
c<00>x<00><01>t<00>|<00>|<01>tj|_tj
|_yr)rrrrrrrrs <20>rrz!FetchFromCacheMiddleware.__init__<5F>s+<00><><00> <0A><07><18><1C>&<26>"<22>><3E>><3E><04><0F>#<23>:<3A>:<3A><04>rc<00>(<00>t|jSrr!r"s rr#zFetchFromCacheMiddleware.cache<68>r$rc<00>&<00>|jdvrd|_yt||jd|j<00><05>}|<02>d|_y|jj |<02>}|<03>M|jdk(r>t||jd|j<00><05>}|jj |<02>}|<03>d|_yt |<03>x}<04>Et|d<00>x} <00>4ttj<00><00>}||z
}td ||z
<00>|d
<d|_|S) zn
Check whether the page is already cached and return the cached
version if available.
)<02>GET<45>HEADFNrLr0TrM<00>Expiresr<00>Age) <0B>methodr&rrr#r<rr <00>int<6E>time<6D>max)rr(r5r)<00>max_age_seconds<64>expires_timestamp<6D> now_timestamp<6D>remaining_secondss r<00>process_requestz(FetchFromCacheMiddleware.process_request<73>s<00><00>
<13>><3E>><3E><1F> 0<>*/<2F>G<EFBFBD> '<27><17>"<22>'<27>4<EFBFBD>?<3F>?<3F>E<EFBFBD><14><1A><1A>T<> <09> <14> <1C>*.<2E>G<EFBFBD> '<27><17><17>:<3A>:<3A>><3E>><3E>)<29>,<2C><08> <13> <1B><07><0E><0E>&<26> 8<>%<25><17><14><1F><1F>&<26><04>
<EFBFBD>
<EFBFBD><0E>I<EFBFBD><1C>z<EFBFBD>z<EFBFBD>~<7E>~<7E>i<EFBFBD>0<>H<EFBFBD> <13> <1B>*.<2E>G<EFBFBD> '<27><17> +<2B>8<EFBFBD>4<> 4<>O<EFBFBD> A<>!5<>h<EFBFBD>y<EFBFBD>6I<36>!J<> J<> <1D><15>G<16> <20><04> <09> <09> <0B>,<2C>M<EFBFBD> 1<>M<EFBFBD> A<> <1D>!<21>!<21>_<EFBFBD>7H<37>%H<>I<>H<EFBFBD>U<EFBFBD>O<EFBFBD>',<2C><07>#<23><17>r) r@rArBrCrrDr#rXrErFs@rrHrH<00>s&<00><><00><08>;<3B>
<0E>(<28><0E>(<28>%rrHc<00>$<00><00>eZdZdZd<03>fd<02> Z<04>xZS)<04>CacheMiddlewarez<65>
Cache middleware that provides basic behavior for many simple sites.
Also used as the hook point for the cache decorator, which is generated
using the decorator-from-middleware utility.
c <00><><00><01>t<00>|<00>|<01> |d}|<05>d}||_ |d}|<06>t}||_|<02>||_||_y#t$rY<00>1wxYw#t$rY<00>+wxYw)Nr<00>r)rrr<00>KeyErrorrrrr)rrrr<00>kwargsrrrs <20>rrzCacheMiddleware.__init__<5F>s<><00><><00> <0A><07><18><1C>&<26>  <11><1F> <0C>-<2D>J<EFBFBD><19>!<21><1F>
<EFBFBD>(<28>D<EFBFBD>O<EFBFBD> <11> <20><1D>/<2F>K<EFBFBD><1A>"<22>1<> <0B>*<2A>D<EFBFBD> <1C> <19> $<24>!.<2E>D<EFBFBD> <1E>(<28><04><19><><18> <11> <10> <11><><18> <11> <10> <11>s"<00>A<00>A<00> A<03>A<03> A#<03>"A#)NN)r@rArBrCrrErFs@rrZrZ<00>s<00><><00><08>)<29>)rrZ)rCrR<00> django.confr<00>django.core.cacherr<00>django.utils.cacherrrr r
<00>django.utils.deprecationr <00>django.utils.httpr rrHrZr/rr<00><module>rdsT<00><01>+<04>Z <0C> <20>9<><02><02>5<>2<>E<18>O<EFBFBD>E<18>P7<18><EFBFBD>7<18>t )<29>+<2B>-E<> )r