django-mobile-withstatic

Software screenshot:
django-mobile-withstatic
Software ətraflı:
Version: 0.2.4
Tarixi Upload: 20 Feb 15
Geliştirici: Gregor Mullegger
Lisenziya: Pulsuz
Məşhurluq: 11

Rating: 5.0/5 (Total Votes: 1)

Django-mobile mobil tarayıcılar aşkar etmək üçün sadə bir yol təqdim və istifadəçi üçün saytın mobil versiyası çatdırmaq üçün bir neçə müxtəlif şablonlar göstərməyə əl siz tools verir ki, Django app edir.
fikir eyni fikir saxlamaq, lakin şəffaf cavab göstərmək üçün istifadə şablonları ideya deyil. Bu iki addım həyata keçirilir:
1. middleware Sizin sayta keçirmək üçün müştərinin üstünlük müəyyən edir. Məsələn O, mobil ləzzət və ya tam masa üstü ləzzət istifadə etmək istəyirsə.
2. şablon loader middleware aşkar ləzzət əsasında düzgün şablonları seçilməsi sonra qayğısına qalır.
Quraşdırma
Pre-Tələblər: django_mobile Django iclası çərçivəsində asılıdır. Siz django_mobile istifadə sessiyaları çərçivəsində effektiv və iş əmin etmək üçün cəhd əvvəl Belə ki,.
1. məsələn Sevimli python vasitəsi ilə django_mobile Install easy_install django_mobile və ya django_mobile bərpa tırtıl.
2. settings.py qəbulu INSTALLED_APPS üçün django_mobile əlavə edin.
3. MIDDLEWARE_CLASSES qəbulu üçün django_mobile.middleware.MobileDetectionMiddleware əlavə edin.
4. MIDDLEWARE_CLASSES qəbulu üçün django_mobile.middleware.SetFlavourMiddleware əlavə edin. Bu MobileDetectionMiddleware sonra da SessionMiddleware sonra verilmişdir əmin olun.
5. settings.py sizin TEMPLATE_LOADERS siyahısına birinci məsələ kimi django_mobile.loader.Loader əlavə edin.
6. TEMPLATE_CONTEXT_PROCESSORS qəbulu üçün django_mobile.context_processors.flavour əlavə edin.
İndi izzəti Django-mobil istifadə etmək lazımdır. Şeyi iş və parametrləri Django-mobil davranış dəyişdirmək üçün tweaked bilər necə aşağıda oxuyun.
istifadə
Django-mobil anlayışı sizin sayt üçün müxtəlif tatlar ideyalar ətrafında inşa edilir. Məsələn mobil versiyası bir mümkün ləzzət başqa kimi masa üstü versiyası kimi təsvir olunur.
Bu mümkün yalnız tam masa üstü təcrübə və mobil versiyası arasında fərqləndirici əvəzinə bir çox mümkün dizayn təmin edir. Siz birdən çox mobil tatlar mövcud məsələn edə bilərsiniz Mobil iPhone və Android safari, eləcə də Opera üçün bir və iPad kimi internet tablet üçün əlavə bir bir.
Qeyd: default Django mobil By yalnız tam və mobil ləzzət arasında fərqləndirir.
Düzgün ləzzət elə middlewares tərəfindən seçilmiş sonra, request.flavour atributu təyin edir. Siz ayrı-ayrı məntiq təmin etmək üçün views istifadə edə bilərsiniz.
Bu ləzzət sonra şəffaf bu xüsusi ləzzət üçün xüsusi şablonlar seçmək üçün istifadə olunur. Seçilmiş şablon, həqiqətən göstərmək istəyirəm şablon adı prefixed cari ləzzət var. Render_to_response (index.html ", ...) mobil ləzzət həqiqətən mobil / index.html şablon ilə göstərilən cavab qayıdacaqlar aktiv olan adlanır Bu deməkdir. Bu ətirli şablon mövcud deyil, əgər Lakin qəşəng default index.html şablon fallback olacaq.
Bəzi hallarda onun istədiyiniz yol hər ləzzət üçün tamamilə ayrı-ayrı şablonları var. Siz yalnız bir şablon kiçik aspektləri dəyişdirmək üçün {{ləzzət}} şablonu dəyişən istifadə edə bilərsiniz. Qısa nümunə:


& Nbsp; Mənim site {% əgər ləzzət == "mobil"%} (mobil versiyası) {% endif%}


& Nbsp; ...


Effektiv mobil ləzzət ilə tanış, bu sitenizin adı (mobil versiyası) əlavə edəcək.
Qeyd: django_mobile.context_processors.flavour kontekstində prosessor qurmaq və şablon göstərməyə kontekstində instansiya kimi Django nin RequestContext istifadə əgər ləzzət şablon dəyişən yalnız mövcuddur.
Cari ləzzət dəyişdirilməsi
Django-mobil əsas istifadə halda istifadəçilər üçün saytın mobil versiyası xidmət üçün açıq-aydın deyil. Öz views deyilir zaman doğru ləzzət seçilməsi adətən artıq middlewares edilir. Bəzi hallarda sizin keçirmək və ya başqa bir yerdə hazırda istifadə ləzzət dəyişdirmək istəyirik. Siz sadəcə django_mobile.set_flavour zəng edərək bu edə bilərsiniz (ləzzət [daimi = True]). ilk arqument özünü izah edir. Amma yalnız sizin Flavours qəbulu da bir ləzzət keçə bilər ki, unutmayın. Əks halda set_flavour bir ValueError çıxaracağıq. ləzzət dəyişiklik həmin müştəri gələcək istekleri üçün yadda əgər isteğe daimi parametrləri müəyyən edir.
Sizin users öz istədiyiniz ləzzət onlara özünü bilərsiniz. Onlar yalnız saytınıza bir xahişi ləzzət GET parametr müəyyən etmək lazımdır. Bu daimi site keçirmək üçün üstünlük kimi bu ləzzət seçəcək.
Siz istifadəçi mövcud tatlar seçin qoy bu GET parametr istifadə edə bilərsiniz:


Caching Qeydlər
Django asanlıqla fikir cache bəzi rahatlığı üsulları ilə daşınmasını həyata keçirir. Onlardan biri django.views.decorators.cache.cache_page edir. Django-mobil ilə birlikdə bütün səhifə caching ilə problem Django nin caching sisteminin tatlar fərqində deyil, deyil. İkinci bir masa üstü brauzer tələb olsa - Bu səhifə üçün ilk sorğu mobil lezzet xidmət olunduğu halda, ikinci tələbi də cache mobil lezzet göstərilən bir səhifə almaq bilər deməkdir.
Django-mobile bu məsələni həll etmək üçün cache_page bu öz həyata keçirilməsi ilə daşınmasını həyata keçirir. Django_mobile.cache.cache_page yerinə Django öz cache_page decorator istifadə edin.
Əgər siz artıq nə kimi Siz həmçinin Django nin caching middlewares django.middleware.cache.UpdateCacheMiddleware və FetchFromCacheMiddleware istifadə edə bilərsiniz. Amma tatlar onları xəbərdar etmək üçün, sağ FetchFromCacheMiddleware əvvəl MIDDLEWARE_CLASSES ayarları ikinci keçən maddə kimi django_mobile.cache.middleware.CacheFlavourMiddleware əlavə etmək lazımdır.
Reference
django_mobile.get_flavour ([sorğu] [default])
& Nbsp; hazırda aktiv ləzzət alın. Heç bir ləzzət müəyyən edilə bilər Əgər default qayıdacaqlar. Set_flavour cari sorğu-cavab dövrü əvvəl çağrılmadı, bu baş verə bilər. Flavours qəbulu ilk maddə default yetirilməməsi.
django_mobile.set_flavour (ləzzət [sorğu] [daimi])
& Nbsp; sorğu üçün istifadə olunacaq ləzzət seçin. Ləzzət Flavours qəbulu deyil, bu ValueError çıxaracağıq. Siz True daimi = keçərək tələbi üçün daimi ətirli etmək üçün cəhd edə bilərsiniz. Bir sorğu-cavab dövrü həyata əgər bu uğursuz ola bilər. Hal-hazırda aktiv sorğu yetirilməməsi tələb.
django_mobile.context_processors.flavour
& Nbsp; kontekstində ləzzət kimi cari ləzzət edir Context prosessor.
django_mobile.context_processors.is_mobile
& Nbsp; Bu əhatədə prosessor cari ləzzət DEFAULT_MOBILE_FLAVOUR qəbulu bərabərdir əgər True kontekstində bir is_mobile dəyişən əlavə edəcək.
django_mobile.middleware.SetFlavourMiddleware
& Nbsp; əgər istifadəçi sessiya saxlanılır ləzzət loading qayğı edir. Həmçinin mövzu yerli dəyişən cari tələb edir. Bu istək obyekt daxil olmadan get_flavour () funksionallığı təmin etmək üçün tələb olunur.
django_mobile.middleware.MobileDetectionMiddleware
& Nbsp; bir mobil brauzer site daxil olmaq üçün çalışır və halda parametrləri dəyər DEFAULT_MOBILE_FLAVOUR ləzzət edir əgər algılar.
django_mobile.cache.cache_page
& Nbsp; view django.views.decorators.cache.cache_page ilə bəzədilmiş əvvəl Django nin cache_page decorator kimi eyni, lakin vary_on_flavour aiddir.
django_mobile.cache.vary_on_flavour
& Nbsp; CacheFlavourMiddleware middleware yaradılmış bir decorator.
django_mobile.cache.middleware.CacheFlavourMiddleware
& Nbsp; process_request ilə request.META edər X-Flavour mövzu və process_response ilə ['Vary'] cavab bu mövzu edir.
Özelleştirme
Siz Django mobil davranışı özelleştirmek imkan mövcud bir xal var. Burada sadalanan bəzi imkanları var:
MobileDetectionMiddleware
mobil brauzer istifadə edərək, istifadəçi istehsalında yaxşı xidmət, lakin mükəmməl uzaq və həmçinin həyata keçirilən çox sadə şəkildə, əgər daxili middleware aşkar etmək üçün. Siz təhlükəsiz ayarları bu middleware aradan qaldırılması və əvəzinə öz versiyasını əlavə edə bilərsiniz. Yalnız sizin üçün doğru ətirli etmək üçün bir nöqtədə django_mobile.set_flavour çağırır ki, əmin olun.
Parametrlər
Burada Django-mobil istifadə edir və öz settings.py dəyişdirilə bilər ayarları siyahısı:
Flavours
Sizin sayt üçün mövcud tatlar siyahısı.
Default: ("tam", "mobil)
DEFAULT_MOBILE_FLAVOUR
daxili MobileDetectionMiddleware mobil brauzer algılarsa seçilir ləzzət.
Default: mobil
FLAVOURS_TEMPLATE_PREFIX
Ətirli şablonları üçün axtarış Bu string şablon adları prefixed olacaq. Bir çox tatlar və ortaq alt onları saxlamaq istəyirsinizsə, bu faydalıdır. Misal:
django.template.loader idxal render_to_string dən
django_mobile idxal set_flavour dən
set_flavour (mobil)
(index.html) # render_to_string göstərəcək mobil / index.html "
# Indi settings.py üçün bu əlavə
FLAVOURS_TEMPLATE_PREFIX = 'tatlar /
# Və yenidən cəhd edin
set_flavour (mobil)
# göstərəcək render_to_string (index.html) "tatlar / mobil / index.html"
Default: '' (boş string)
FLAVOURS_TEMPLATE_LOADERS
Django-mobil şablon loader cari ləzzət ilə prefixed şablonları yükləyə bilər. Yükləyicilər ətirli şablonları yüklemek üçün istifadə olunur, bu qəbulu ilə daxil.
Default: qəbulu TEMPLATE_LOADERS lakin 'django_mobile.loader.Loader olmadan eyni.
FLAVOURS_GET_PARAMETER
Indi bir HTTP GET parametr ilə baxmaq istədiyiniz ləzzət dəyişə bilərsiniz. Bu parametr adı müəyyən edir. Aradan Yox seçin.
Default: "ləzzət"
FLAVOURS_SESSION_KEY
GET parametr ilə müəyyən istifadəçi üstünlük istifadəçi iclasında saxlanılır. Bu parametr bu məlumatı saxlamaq üçün istifadə olunan iclası əsas müəyyən edir.
Default: "ləzzət"

Bu azad yeni nədir.

  • Əlavə platforma tanınması

nədir versiya 0.2.3-ci Yeni

  • DÜZELTME: bütün hallarda müəyyən ləzzət yalnız bir mobil brauzer aşkar. Hesabat üçün John P. Kiffmeyer üçün təşəkkür edirik.

tələblər

  • Python
  • Django

Geliştirici digər proqram Gregor Mullegger

django-mobile
django-mobile

14 Apr 15

Şərh django-mobile-withstatic

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!