A Django-mobile egy Django app, amely egy egyszerű módja annak, hogy érzékeli a mobil böngészők, és ad eszközöket a kezed teszi néhány különböző sablonok átadni egy mobil változata a webhely a felhasználó.
Az ötlet az, hogy a nézetek pontosan ugyanaz, de az átlátható cserélni a sablonok alkalmaznak, hogy egy választ. Ezt két lépésben:
1. A middleware határozza meg az ügyfél kívánsága, hogy megtekinthesse a webhely. Például ha azt akarja, hogy használja a mobil ízt, vagy a teljes desktop ízét.
2. A sablon loader vesz majd gondoskodik kiválasztani a megfelelő sablonok alapján ízt érzékel a middleware.
Telepítés
Pre-követelmények: django_mobile függ Django ülésen keretet. Tehát mielőtt megpróbálja használni django_mobile győződjön meg arról, hogy az ülés keretén engedélyezve van és működik.
1. Telepítse django_mobile kedvenc python eszköz, például A easy_install django_mobile vagy a PIP telepíteni django_mobile.
2. Add django_mobile a INSTALLED_APPS beállítást a settings.py.
3. Add django_mobile.middleware.MobileDetectionMiddleware a MIDDLEWARE_CLASSES beállítást.
4. Add django_mobile.middleware.SetFlavourMiddleware a MIDDLEWARE_CLASSES beállítást. Győződjön meg róla, ez szerepel után MobileDetectionMiddleware és után is SessionMiddleware.
5. Add django_mobile.loader.Loader első tételt a TEMPLATE_LOADERS lista settings.py.
6. Add django_mobile.context_processors.flavour a TEMPLATE_CONTEXT_PROCESSORS beállítást.
Most kell tudni használni Django-mobile fénykorát. Olvassa el az alábbi, hogyan működnek a dolgok, és beállítható lehetőségek csípett módosítani Django-mobil viselkedését.
Használat
A koncepció a Django-Mobile építeni köré a gondolatok a különböző ízek a webhelyen. Például a mobil változatot, amely az egyik lehetséges ízt, az asztali változat, mint a másik.
Ez lehetővé teszi számára, hogy számos lehetséges tervek helyett csak megkülönböztetni a teljes desktop élmény és egy mobil változata. Tudod, hogy több mobil ízben kapható pl Egy mobil Safari az iPhone és az Android, valamint egy-egy Opera és egy extra egyet az interneten tabletta, mint az iPad.
Megjegyzés: Alapesetben a Django-mobil csak megkülönbözteti a teljes és mobil ízét.
Miután a megfelelő íz valahogy által választott middleware, ez rendelni a request.flavour attribútum. Használhatja ezt a véleményét, hogy külön logikát.
Ez a zamat, akkor használd a átláthatóan választhat egyéni sablonokat erre a különleges ízét. A kiválasztott sablon lesz a jelenlegi íze előtaggal, a sablon neve valóban szeretne tenni. Ez azt jelenti, ha render_to_response ("index.html", ...) nevezik a mobil ízű tevékenykedő valóban visszatér a választ, megjelenjen a mobil / index.html sablont. Azonban, ha ez az ízesített sablon nem áll rendelkezésre fog kecsesen, visszatér az alapértelmezett index.html sablont.
Egyes esetekben a nem kívánt módon, hogy egy teljesen különálló sablonok minden ízét. Ön is használja a {{}} sablont íze változó csak akkor változhat a kis aspektusát egyetlen sablon. Egy rövid példa:
& Nbsp;
& Nbsp; ...
Ez hozzáad (mobil változat), hogy a cím a webhely, ha nézett a mobil ízű engedélyezett.
Megjegyzés: Az íz sablon változó csak akkor elérhető, ha be van állítva a django_mobile.context_processors.flavour összefüggésben processzor és használt Django RequestContext mint összefüggésben például, hogy elvegye a sablont.
Megváltoztatja a jelenlegi íze
Az alapvető használatát esetén Django-mobile nyilvánvalóan szolgálni a mobil változata webhelyét a felhasználóknak. A kiválasztás a megfelelő íz általában már megtette a middleware, amikor a saját nézeteit nevezzük. Egyes esetekben meg akarja változtatni a jelenleg használt íz Ön szerint, vagy valahol máshol. Megteheti ezt egyszerűen hívja django_mobile.set_flavour (íz [állandó = True]). Az első érv magától magyarázza. De ne feledje, hogy csak akkor lehet átadni egy íz, amit szintén a ÍZEK beállítást. Ellenkező set_flavour fogja emelni a ValueError. Az opcionális állandó paramétereket határoz meg, ha a változás a íze emlékszem a jövő kéréseket az azonos ügyfél.
A felhasználók maguk adhatják meg a kívánt íz őket magától. Ők csak meg kell adnia az íz GET paraméter a kéréssel, hogy a webhely. Ezzel véglegesen válassza ezt íze, mint a preferencia Az oldal megtekintéséhez.
Használhatja ezt a GET paramétert, hogy a felhasználó választhat a rendelkezésre ízek:
- a teljes élményt
& Nbsp; - Tekintse meg a mobil változat
& Nbsp; - Tekintse meg iPad verzió
& Nbsp;
Megjegyzések a caching
Django szállítja a néhány kényelmi módszerekkel egyszerűen tedd le kilátás. Ezek közül az egyik django.views.decorators.cache.cache_page. A probléma a cache-eli a teljes oldal együtt Django-Mobile, hogy a Django caching rendszer nem ismeri ízek. Ez azt jelenti, hogy ha az első kérés, hogy egy oldal szolgált egy mobil ízű, a második kérelmet is kap egy oldal, megjelenjen a mobil ízét a cache - akkor is, ha a második kérte a desktop böngésző.
Django-mobile szállítja révén, saját végrehajtását cache_page a probléma megoldásához. Használja django_mobile.cache.cache_page helyett Django saját cache_page lakberendező.
Ön is használja Django caching middleware django.middleware.cache.UpdateCacheMiddleware és FetchFromCacheMiddleware mint te már nem. De hogy tudatosítsák bennük az ízek, meg kell hozzá django_mobile.cache.middleware.CacheFlavourMiddleware második utolsó elemek a MIDDLEWARE_CLASSES beállításokat, közvetlenül azelőtt, FetchFromCacheMiddleware.
Reference
django_mobile.get_flavour ([kérést,] [alapértelmezett])
& Nbsp; A jelenleg aktív ízét. Ha nem ízét meg lehet határozni, hogy vissza fog térni az alapértelmezett. Ez akkor fordulhat elő, ha set_flavour nem nevezték, mielőtt az aktuális kérés-válasz ciklust. alapértelmezett alapértelmezésben az első elem a ÍZEK beállítást.
django_mobile.set_flavour (íz, [kérést,] [állandó])
& Nbsp; Állítsa az íz használt kérésére. Ez növeli ValueError ha íze nem az ízt kölcsönöz a beállítást. Meg lehet próbálni, hogy állítsa az íz mellett tartósan, kérésre átadásával állandó = True. Ez sikertelen lehet, ha végre egy kérés-válasz ciklust. kérheti alapértelmezésben a jelenleg aktív kérést.
django_mobile.context_processors.flavour
& Nbsp; Kontextus processzor, amely hozzáteszi a jelenlegi ízt ízt keretében.
django_mobile.context_processors.is_mobile
& Nbsp; Ez összefüggésben processzor lesz hozzá egy is_mobile változó keretében, amely igaz, ha az aktuális íze megegyezik a DEFAULT_MOBILE_FLAVOUR beállítást.
django_mobile.middleware.SetFlavourMiddleware
& Nbsp; Gondoskodik betöltése a tárolt ízét a felhasználói munkamenetet, ha be. Meghatározza továbbá a jelenlegi kérést egy szál-lokális változó. Erre azért van szükség, hogy get_flavour () funkciót anélkül, hogy hozzáférjenek a kérelem tárgya.
django_mobile.middleware.MobileDetectionMiddleware
& Nbsp; észleli, ha a mobil böngésző megpróbálja elérni a helyszínen, és meghatározza az íz, hogy DEFAULT_MOBILE_FLAVOUR beállítások érték esetén.
django_mobile.cache.cache_page
& Nbsp; Ugyanaz, mint a Django cache_page dekoratőr, de érvényes vary_on_flavour előtt a véleményen van díszítve django.views.decorators.cache.cache_page.
django_mobile.cache.vary_on_flavour
& Nbsp; A dekoratőr létre a CacheFlavourMiddleware middleware.
django_mobile.cache.middleware.CacheFlavourMiddleware
& Nbsp; Hozzáad X-Íz fejléc request.META a process_request és hozzáteszi, ez a fejlécet választ ['Vary'] a process_response.
testreszabási
Van néhány pont érhető itt el, amely a viselkedését Django-mobil. Néhány lehetőség szerepel:
MobileDetectionMiddleware
A beépített middleware hogy érzékeli, ha a felhasználó egy mobil böngésző jól szolgálta a termelés, de messze nem tökéletes, és szintén folyik egy nagyon egyszerű módon. Nyugodtan távolítsa el ezt a middleware-re a beállításokat, és add hozzá a saját verziót is. Csak győződjön meg arról, hogy kéri django_mobile.set_flavour egy bizonyos ponton, hogy állítsa be a megfelelő íz az Ön számára.
Beállítások
Itt van egy lista a beállításokat, melyek segítségével a Django-mobile és meg lehet változtatni a saját settings.py:
ÍZEK
A rendelkezésre álló ízek a webhelyen.
Default: ("teljes", "mobil")
DEFAULT_MOBILE_FLAVOUR
A aromájú, amely választható, ha a beépített MobileDetectionMiddleware érzékel mobil böngésző.
Default: mobil
FLAVOURS_TEMPLATE_PREFIX
Ez a szöveg lesz előtagja lehet a sablon nevét, amikor keres ízesített sablonok. Ez akkor hasznos, ha sok ízek és szeretné tárolni őket egy közös könyvtárban. Például:
a django.template.loader import render_to_string
a django_mobile import set_flavour
set_flavour ("mobil")
render_to_string ("index.html") # megfizetek "mobil / index.html"
# Most adni ezt a settings.py
FLAVOURS_TEMPLATE_PREFIX = "ízek /"
# És próbálkozzon újra
set_flavour ("mobil")
render_to_string ("index.html") # megfizetek "ízek / mobil / index.html"
Default: "" (üres string)
FLAVOURS_TEMPLATE_LOADERS
Django-Mobile template loader tudja tölteni sablonok előtaggal a jelenlegi ízét. Adja ezzel a beállítással, amely rakodógépek arra használják, hogy az ízesített sablonok.
Default: ugyanaz, mint TEMPLATE_LOADERS beállítás, de nem "django_mobile.loader.Loader".
FLAVOURS_GET_PARAMETER
A felhasználók módosíthatják az íz akarnak nézni egy HTTP GET paraméter. Ez határozza meg a nevét ez a paraméter. Állítsa a Nincs letiltani.
Default: "íz"
FLAVOURS_SESSION_KEY
A felhasználói preferencia beállítása a GET paraméter tárolódik a felhasználói munkamenetet. Ez a beállítás határozza meg, melyik session kulcs tárolására használjuk ezt az információt.
Default: "íz"
Mi az új ebben a kiadásban:
- Added platform felismerve.
Mi az új verzióban 0.2.3:
- Javítás: állítsa íze minden esetben, és nem csak Ha egy mobil böngészőt érzékeli. Hála John P. Kiffmeyer a jelentést.
követelmények :
- Python
- Django
Hozzászólás nem található