Der er tidspunkter, hvor du ønsker at bruge en anden skabelon baseret på værdien af en HTTP-forespørgsel header. For eksempel forskellige domænenavne, forskellige browsertyper, eller endda den henvisende side. Den dynamicloader Projektet giver mulighed for at angive en særskilt liste over mapper, som Django skal kigge efter skabeloner, på grundlag af en værdi i anmodningen header.
Installation
1. Installer `` dynamicloader`` i din Python sti.
2. Tilsæt `` 'dynamicloader.middleware.RequestMiddleware', `` i din `` MIDDLEWARE_CLASSES`` indstilling.
3. Tilsæt `` 'dynamicloader.loader.load_template_source', `` på * top * af din `` TEMPLATE_LOADERS`` indstilling.
4. Opret en ny indstilling, `` DYN_TEMPLATE_MAP``, i følgende format ::
& Nbsp; & nbsp; & nbsp; DYN_TEMPLATE_MAP = {
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; »HTTP_HEADER1 ': {
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile (værdi1): (»/ sti / til / mappe", "/ sti / til / directory2«,)
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile (værdi2): (»/ sti / til / directory3«,)
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; »HTTP_HEADER2 ': {
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile (værdi1): (»/ sti / til / directory4«,)
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Skabelon Kort Eksempler
Domain Name Forskelle
Dette eksempel tillader overstyring af visse skabeloner baseret på domænenavn eller subdomæne. I denne opsætning vil Django kigge i `` / sti / til / directory`` først, hvis `` HTTP_HOST`` indbefatter værdien `` www2``.
& Nbsp; & nbsp; & nbsp; DYN_TEMPLATE_MAP = {
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; »HTTP_HOST ': {
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile (www2): (»/ sti / til / mappe",),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Browser Forskelle
Dette eksempel tillader levering af forskellige skabeloner (eller blot specifikke dem) baseret på brugerens browser.
& Nbsp; & nbsp; & nbsp; DYN_TEMPLATE_MAP = {
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; »HTTP_USER_AGENT ': {
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile (»iPhone | iPod): (» / sti / til / mappe ",),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Forespørgselsstrengen Forskelle
Dette eksempel kontrollerer søgestrengen at afgøre, hvilken skabelon at bruge baseret på en query string (de ting efter en '?' I en URL).
DYN_TEMPLATE_MAP = {
& Nbsp; & nbsp; & nbsp; »QUERY_STRING ': {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile (»imreallycool = 1 '): (» / sti / til / mappe ",),
& Nbsp; & nbsp; & nbsp; }
}
Krav :
- Python
- Django
Kommentarer ikke fundet