Są chwile, kiedy chcesz używać innego szablonu w oparciu o wartości nagłówka żądania HTTP. Na przykład, różne nazwy domen, różne typy przeglądarek, a nawet strona na myśli. Projekt dynamicloader pozwala określić oddzielną listę katalogów, w których należy szukać Django szablony, na podstawie wartości w nagłówku żądania.
instalacji
1. Zainstaluj `` dynamicloader`` w ścieżce Pythona.
2. Dodaj `` 'dynamicloader.middleware.RequestMiddleware', `` `` w swoim otoczeniu MIDDLEWARE_CLASSES``.
3. Dodaj `` 'dynamicloader.loader.load_template_source', `` w * top * swojego `` TEMPLATE_LOADERS`` ustawienia.
4. Utwórz nowe ustawienie, `` DYN_TEMPLATE_MAP``, w następującym formacie ::
& 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 ("wartość1"): ('/ ścieżka / do / katalogu', '/ ścieżka / do / katalog2 "),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('wartość2') ('/ ścieżka / do / 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 ("wartość1"): ('/ ścieżka / do / directory4 ")
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Szablon Mapa Przykłady
Różnice nazwy domeny
Przykład ten pozwala na nadpisanie pewnych szablonów na podstawie nazwy domeny lub subdomeny. W tej konfiguracji, Django będzie wyglądać w `` / ścieżka / do / directory`` pierwsze, jeśli `` HTTP_HOST`` obejmuje wartość `` 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"): ('/ ścieżka / do / katalogu "),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Różnice przeglądarkowe
Przykład ten pozwala na dostarczenie różnych szablonów (lub po prostu szczególnymi), opartych na przeglądarce użytkownika.
& 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"): ('/ ścieżka / katalog / "),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Różnice Query String
Ten przykład sprawdza ciąg kwerendy do decydowania, które szablon do użycia na podstawie łańcucha zapytania (stuff po "?" W adresie URL).
DYN_TEMPLATE_MAP = {
& Nbsp; & nbsp; & nbsp; "QUERY_STRING": {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ("imreallycool = 1"): ('/ ścieżka / do / katalogu "),
& Nbsp; & nbsp; & nbsp; }
}
Wymagania :
- Python
- Django
Komentarze nie znaleziono