Bir HTTP istek başlığının değerine göre farklı bir şablon kullanmak istiyorum
zamanlar vardır. Örneğin, farklı alan adları, farklı tarayıcı türleri, hatta atıfta sayfa. dynamicloader projesi Django istek başlığında bir değere dayalı, şablonlar için görünmelidir hangi dizinleri ayrı bir liste belirlemenizi sağlar.
Yükleme
1. `yükleyin Python yolunda` dynamicloader``.
Senin `` MIDDLEWARE_CLASSES`` ortama 2. Ekle `` dynamicloader.middleware.RequestMiddleware ', ``.
Senin `` TEMPLATE_LOADERS`` ayarı * üst * ile 3. Ekle `` dynamicloader.loader.load_template_source ', ``.
4. Aşağıdaki biçimde yeni bir ayar, `` DYN_TEMPLATE_MAP`` oluşturun ::
& 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 ('değer1'): ('/ / yol / dizin', '/ / yol / Rehberinde 2',),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('value2'): ('/ / yol / 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 ('değer1'): ('/ / yol / directory4',)
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; }
Şablon Harita Örnekleri
Alan Adı Farkları
Bu örnek bir etki alanı adı veya alt dayalı bazı şablonlar geçersiz kılma sağlar. Bu ayarda, Django / `` / yolunda bakacağız için / directory`` ilk `` HTTP_HOST`` değeri `` www2`` içeriyorsa.
& 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'): ('/ / yol / dizin',),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; },
& Nbsp; & nbsp; & nbsp; }
Tarayıcı Farkları
Bu örnek, kullanıcının tarayıcısında dayalı farklı şablonlar (veya yalnızca belirli olanları) teslim sağlar.
& 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'): ('/ / yol / dizin',),
& Nbsp; & nbsp; & nbsp; & Nbsp; & nbsp; & nbsp; },
& Nbsp; & nbsp; & nbsp; }
Sorgu dizesi Farklar
Bu örnek bir sorgu dizesi (bir sonraki şeyler '?' Bir URL) dayalı kullanmak için hangi şablonu karar sorgu dizesi denetler.
DYN_TEMPLATE_MAP = {
& Nbsp; & nbsp; & nbsp; 'QUERY_STRING': {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; re.compile ('imreallycool = 1'): ('/ / yol / dizin',),
& Nbsp; & nbsp; & nbsp; },
}
Gereksinimler :
- Python
- Django
Yorum Bulunamadı