django-Mobile yra programa, kuri suteikia Django paprastą būdą aptikti naršykles mobiliesiems ir suteikia jums įrankius rankoje padaryti keletą skirtingų šablonų pristatyti mobilųjį versiją savo svetainės vartotojas.
Idėja yra, kad jūsų vaizdai lygiai tas pats, bet skaidriai sukeiskite šablonus, naudojamus teikia atsakymą. Tai padaryta dviem pakopomis:
1. tarpinės lemia kliento pageidavimą, kad galėtumėte peržiūrėti jūsų svetainę. Pvz jei jis nori naudotis mobiliojo skonį arba visą darbastalio skonį.
2. šablonas krautuvas trunka tada rūpintis renkantis tinkamus šablonus, remiantis skonio aptikta tarpinės.
Diegimas
Pre-Reikalavimai: django_mobile priklauso Django sesijų sistemą. Taigi prieš jus pabandykite naudoti django_mobile įsitikinkite, kad sesijos sistema yra įjungta ir veikia.
1. Įdiekite django_mobile su savo mėgstamą python įrankiu, pvz su easy_install django_mobile arba PIP įdiegti django_mobile.
2. Pridėti django_mobile savo INSTALLED_APPS parametrą settings.py.
3. Pridėti django_mobile.middleware.MobileDetectionMiddleware savo MIDDLEWARE_CLASSES nustatymas.
4. Pridėti django_mobile.middleware.SetFlavourMiddleware savo MIDDLEWARE_CLASSES nustatymas. Įsitikinkite, kad jis yra nurodytas po MobileDetectionMiddleware ir po SessionMiddleware.
5. Pridėti django_mobile.loader.Loader kaip pirmą elementą prie jūsų TEMPLATE_LOADERS sąrašą settings.py.
6. Pridėti django_mobile.context_processors.flavour savo TEMPLATE_CONTEXT_PROCESSORS nustatymas.
Dabar jums turėtų būti suteikta galimybė pasinaudoti Django-Mobile jo šlovės. Skaityti toliau kaip viskas veikia ir kurie nustatymai gali būti nežymiai modifikuoti Django-Mobile elgesį.
Naudojimas
Nuo django-Mobile koncepcija yra statyti aplink įvairių skonių jūsų svetainėje idėjas. Pavyzdžiui mobili versija apibūdinama kaip vienas iš galimų skonio, darbalaukio versiją kaip kitą.
Tai leidžia vietoj teikia daug galimų dizaino tiesiog atskirti visą darbastalio patirtį ir vienam judriojo versiją. Jūs galite padaryti kelis mobiliuosius skonių galima pvz viena mobiliųjų Safari "iPhone" ir "Android", taip pat po vieną operos ir papildomą vieną interneto tablečių, pavyzdžiui, iPad.
Pastaba: Pagal nutylėjimą django-Mobile skiria tik visapusiškai ir mobiliųjų skonio.
Po teisingas skonis kažkaip pasirinkta middlewares, tai priskiriama request.flavour atributas. Jūs galite naudoti šią nuorodą į savo nuomonėmis teikti atskirą logiką.
Tai skonis tada naudoti skaidriai rinktis šablonus už šį ypatingą skonį. Pasirinktas šablonas turės dabartinį skonį priešdėliu į šablono pavadinimą, jūs iš tikrųjų norite padaryti. Tai reiškia, kad, kai render_to_response ("index.html", ...) yra vadinamas su mobili skonio yra aktyvus bus tikrai grįžti atsakymą lydytas su mobiliuoju / index.html šabloną. Tačiau, jei tai skonio šablonas nėra jis grakščiai atsarginis į numatytąjį index.html šabloną.
Kai kuriais atvejais, jos ne pageidaujama būdas turėti visiškai atskirą šablonus kiekvieną skonį. Jūs taip pat galite naudoti {{skonio}} šablono kintamąjį tik pakeisti mažas aspektus vieną šabloną. Trumpas pavyzdys:
& Nbsp;
& Nbsp; ...
Tai bus pridėti (mobili versija), kad jūsų svetainės pavadinimas, jei žiūrima į mobilųjį skonio įjungtas.
Pastaba: , skonio šablonas kintamasis yra tik tada, jei jūs įsteigti django_mobile.context_processors.flavour kontekstinį procesorius ir naudoti Django anketa RequestContext kaip kontekstinio Pavyzdžiui padaryti šabloną.
Pakeitus dabartinį skonį
Pagrindinis naudojimas atvejis django-Mobile yra akivaizdžiai tarnauti mobilųjį versiją savo svetainės vartotojai. Teisingo skonio pasirinkimas paprastai jau padaryta middlewares kai savo požiūrį vadinami. Kai kuriais atvejais jūs norite pakeisti šiuo metu naudojamą skonį, jūsų nuomone, ar kažkur kitur. Jūs galite tai padaryti tiesiog paskambinę django_mobile.set_flavour (skonio [nuolatinė = True]). Pirmasis argumentas yra savarankiškai paaiškinti. Tačiau reikia nepamiršti, kad jums tik gali praeiti per skonis, kad jūs taip pat savo skonių aplinkoje. Priešingu set_flavour bus pakelti ValueError. Pasirinktiniai nuolatiniai parametrai apibrėžia, jei iš skonio pokytis yra nepamiršti, už būsimų prašymų tos pačios klientui.
Jūsų vartotojai gali nustatyti savo norimą skonį jiems savitarna. Jie tiesiog reikia nurodyti skonio GET parametrą ant prašymu į jūsų svetainę. Tai bus nuolat rinktis šį aromatą, kaip jų pageidavimus, kad galėtumėte peržiūrėti svetainę.
Jūs galite naudoti šį GET parametrą leisti vartotojui pasirinkti iš savo turimų skonių:
- Gauti visą patirtį >
& Nbsp;- Peržiūrėkite mobili versija >
& Nbsp;- Peržiūrėkite iPad versija >
- Peržiūrėkite mobili versija >
& Nbsp;
Pastabos dėl spartinimo
Django vežąs su kai patogumo metodų lengvai talpyklą savo nuomonę. Vienas iš jų yra django.views.decorators.cache.cache_page. Su spartinimo visą puslapį kartu su django-Mobile problema yra, tai Django anketa spartinimo sistema nežino skonių. Tai reiškia, kad jei pirmasis prašymas į puslapį patiekiamas su mobiliuoju skonio, antra prašymą taip pat gali gauti puslapio lydytas su mobiliuoju skonio iš talpyklos - net jei antrasis paprašė kompiuterio naršyklėje.
django-Mobile vežąs su jo paties įgyvendinimo cache_page išspręsti šią problemą. Prašome naudoti django_mobile.cache.cache_page vietoj Django nuosavą cache_page dekoratorius.
Taip pat galite naudoti Django anketa spartinimo middlewares django.middleware.cache.UpdateCacheMiddleware ir FetchFromCacheMiddleware kaip jūs jau padaryti. Bet, kad jie žinotų skonių, jums reikia pridėti django_mobile.cache.middleware.CacheFlavourMiddleware kaip antros paskutinį elementą MIDDLEWARE_CLASSES nustatymus, tiesiai prieš FetchFromCacheMiddleware.
Nuoroda
django_mobile.get_flavour ([prašymas] [nutylėjimą])
& Nbsp; Gaukite metu aktyviai skonį. Jei skonis gali būti nustatomas jis grįš nutylėjimą. Tai gali atsitikti, jei set_flavour nebuvo kreiptasi iki dabartinio prašymo reagavimo ciklo. Numatytieji nutylėjimą pirmuoju punktu į Flavours aplinkoje.
django_mobile.set_flavour (skonio, [prašymas] [nuolatinės])
& Nbsp; Nustatykite skonį, kuris bus naudojamas prašymu. Tai pakels ValueError jei skonis yra ne Kvapiosios medžiagos nustatymas. Galite pabandyti nustatyti skonį visam laikui prašymu perduoti nuolatinių = true. Tai gali žlugti, jei esate iš prašymą atsako į ciklą. prašyti numatytuosius su aktyvia prašymu.
django_mobile.context_processors.flavour
& Nbsp; Kontekstas procesorius, kuris prideda dabartinį skonį aromatui į aplinkybes.
django_mobile.context_processors.is_mobile
& Nbsp; Tai kontekstas procesorius bus pridėti is_mobile kintamąjį konteksto, kuris yra Tiesa, jei dabartinė skonio lygus DEFAULT_MOBILE_FLAVOUR nustatymą.
django_mobile.middleware.SetFlavourMiddleware
& Nbsp; rūpinasi pakrovimo saugomi skonį iš vartotojo sesiją, jeigu nustatyti. Taip pat nustato dabartinį prašymą sriegis-vietos kintamąjį. Tai būtina pateikti get_flavour () funkciją be prieigos prie prašymo objektas.
django_mobile.middleware.MobileDetectionMiddleware
& Nbsp; Aptinka jei mobili naršyklė bando patekti į svetainę ir nustato skonio DEFAULT_MOBILE_FLAVOUR nustatymų vertę tuo atveju.
django_mobile.cache.cache_page
& Nbsp; Tas pats, kaip Django anketa cache_page apdailininko, bet taikoma vary_on_flavour prieš vaizdas puošia django.views.decorators.cache.cache_page.
django_mobile.cache.vary_on_flavour
& Nbsp; dekoratorius sukurta iš CacheFlavourMiddleware tarpinės.
django_mobile.cache.middleware.CacheFlavourMiddleware
& Nbsp; nuotraukai X Skonis antraštę request.META į process_request ir prideda šį antraštę atsakas ['Vary "] į process_response.
Pritaikyti
Yra keletas balų, kurios leidžia pritaikyti Django-Mobile elgesį. Štai keletas išvardytų galimybių:
MobileDetectionMiddleware
Built-in tarpinės siekiant nustatyti, ar vartotojas naudojasi mobiliuoju naršyklę tarnavo gerai gamybą, tačiau toli gražu nėra tobula ir taip pat įgyvendinama labai supaprastintas būdas. Jūs galite saugiai pašalinti šį tarpinę iš savo nustatymus ir pridėti savo versiją vietoj. Tiesiog įsitikinkite, kad ji ragina django_mobile.set_flavour tam tikru momentu nustatyti teisingą skonį jums.
Nustatymai
Čia yra parametrų, kurie yra naudojami django-Mobile ir gali būti keičiama į savo settings.py sąrašas:
Skonių
Turimų skonių jūsų svetainę, sąrašą.
Numatyta: (pilnas "," mobilusis ")
DEFAULT_MOBILE_FLAVOUR
Skonis, kuris yra pasirinktas, jei įmontuota MobileDetectionMiddleware aptinka mobiliojo telefono naršyklę.
Numatyta: mobili
FLAVOURS_TEMPLATE_PREFIX
Ši eilutė bus prieš šabloną pavadinimų ieškant skonio šablonus. Tai naudinga, jei turite daug skonių ir nori laikyti juos į bendrą pakatalogį. Pavyzdys:
nuo django.template.loader importo render_to_string
nuo django_mobile importo set_flavour
set_flavour ("mobilusis")
render_to_string ("index.html") # teiks "mobilusis / index.html"
# Dabar pridėti prie settings.py
FLAVOURS_TEMPLATE_PREFIX = 'skonių / "
# Ir bandykite dar kartą
set_flavour ("mobilusis")
render_to_string ("index.html") # teiks "skonių / mobili / index.html"
Numatytoji reikšmė: '' (tuščia eilutė)
FLAVOURS_TEMPLATE_LOADERS
Django-Mobile šabloną krautuvas gali krauti šablonus su priešdėliu dabartinio skonio. Nurodykite su šiuo nustatymu, kuris krautuvai yra naudojami įkelti skonio šablonus.
Numatyta: tas pats kaip TEMPLATE_LOADERS nustatančių, bet be "django_mobile.loader.Loader".
FLAVOURS_GET_PARAMETER
Vartotojai gali pakeisti skonį jie nori pažvelgti su HTTP GET parametrą. Tai apibrėžia šio parametro pavadinimą. Nustatykite jį prie Nėra išjungti.
Numatyta: "skonis"
FLAVOURS_SESSION_KEY
Vartotojo pirmenybė nustatyti su GET parametrą yra saugomi vartotojo sesijos. Šis parametras nustato, kuris sesijos raktas yra naudojamas laikyti šią informaciją.
Numatyta: "skonis"
Kas naujo , šioje laidoje:.
- Pridėta platforma pripažįstant
Kas naujo versijos 0.2.3:
- PATAISYMAS: nustatyti skonio visais atvejais, o ne tik jei mobiliojo telefono naršyklėje yra aptinkamas. Ačiū John P. KIFFMEYER už pranešimą.
Reikalavimai :
- Python
- Django
Komentarai nerastas