Yra laikai, kai norite naudoti kitą šabloną, pagrįstą HTTP užklausos antraštėje vertę. Pavyzdžiui, įvairių domenų vardus, skirtingų naršyklių rūšys ar net nuoroda puslapio. Dynamicloader projektas leidžia nustatyti atskirą sąrašą katalogų, kuriuose Django turėtų ieškoti šablonų, remiantis vertės prašyme antraštėje.
Diegimas
1. Įdiekite `` dynamicloader`` savo Python keliu.
2. Pridėti `` 'dynamicloader.middleware.RequestMiddleware ",` `į savo` `MIDDLEWARE_CLASSES`` nustatymas.
3. Pridėti `` 'dynamicloader.loader.load_template_source ",` `ne * * viršų savo` `TEMPLATE_LOADERS`` nustatymas.
4. Sukurti naują nustatymą, `` DYN_TEMPLATE_MAP``, tokiu formatu ::
& 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 (1 reikšmė): ("/ kelias / iki / katalogas", "/ kelias / iki / directory2"),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile (2 reikšmė "): (" / kelias / iki / 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 (1 reikšmė): ("/ kelias / iki / directory4")
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Šablonas Žemėlapis pavyzdžiai
Domain Name skirtumai
Šis pavyzdys leidžia tam tikrus šablonus, remiantis domeno pavadinimas arba subdomenas nepaisyti. Šiuo setup, Django atrodys `` / path / to / directory`` pirmas, jei `` HTTP_HOST`` įeina vertė `` 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 "): (" / kelias / iki / katalogas "),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Naršyklė skirtumai
Šis pavyzdys leidžia įvairių šablonų (arba tiesiog konkrečius tie), remiantis vartotojo naršyklę pristatymas.
& 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"): ("/ kelias / iki / katalogas"),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Užklausos skirtumai
Šis pavyzdys tikrina užklausos eilutę spręsti, kurios šabloną naudoti remiantis užklausos eilutę (po stuff "?" Į URL).
DYN_TEMPLATE_MAP = {
& Nbsp; & nbsp; & nbsp; "QUERY_STRING": {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile (imreallycool = 1): ("/ kelias / iki / katalogas"),
& Nbsp; & nbsp; & nbsp; }
}
Reikalavimai :
- Python
- Django
Komentarai nerastas