Django-mobile ay isang Django app na nagbibigay ng isang simpleng paraan upang makita ang mga mobile na browser at nagbibigay sa iyo ng mga tool sa iyong kamay upang mag-render ng ilang iba't ibang mga template upang makapaghatid ng isang mobile na bersyon ng iyong site sa user.
Ang ideya ay upang panatilihin ang iyong mga tanawin ng parehong eksaktong ngunit sa halatang Interchange sa mga template na ginamit upang mag-render ng tugon. Ginagawa ito sa dalawang hakbang:
1. Ang isang middleware ay nagpasiya kagustuhan ng kliyente upang tingnan ang iyong site. Halimbawa kung nais ni siya upang magamit ang mobile na panlasa o ang buong desktop lasa.
2. Ang template loader pagkatapos ay tumatagal ng pag-aalaga ng pagpili ng tamang mga template batay sa nakita sa middleware ang lasa.
Pag-install
Pre-kailangan: django_mobile ay depende sa session framework Django iyon. Kaya bago mo subukang gamitin django_mobile tiyakin na ang sesyon ng balangkas ay gumagana at nagtatrabaho.
1. I-install ang django_mobile sa iyong mga paboritong tool python, hal may easy_install django_mobile o buto ng bungang-kahoy-install django_mobile.
2. Magdagdag ng django_mobile sa iyong pagse-set sa settings.py INSTALLED_APPS.
3. Magdagdag ng django_mobile.middleware.MobileDetectionMiddleware sa iyong setting MIDDLEWARE_CLASSES.
4. Magdagdag ng django_mobile.middleware.SetFlavourMiddleware sa iyong setting MIDDLEWARE_CLASSES. Tiyakin na ito ay nakalista pagkatapos MobileDetectionMiddleware at pagkatapos din SessionMiddleware.
5. Idagdag django_mobile.loader.Loader bilang unang item sa iyong listahan ng TEMPLATE_LOADERS sa settings.py.
6. Magdagdag ng django_mobile.context_processors.flavour sa iyong setting TEMPLATE_CONTEXT_PROCESSORS.
Ngayon ay dapat magagawang gamitin Django-mobile sa sarili kaluwalhatian sa iyo. Basahin sa ibaba ng kung paano gumagana ang mga bagay at kung aling mga setting ay maaaring tweaked upang baguhin ang pag-uugali Django-mobile.
Paggamit
Ang konsepto ng Django-mobile ay bumuo sa paligid ng mga ideya ng iba't ibang mga lasa para sa iyong site. Halimbawa mobile na bersyon ay inilarawan bilang isang posibleng panlasa, ang desktop na bersyon ng sa isa pang.
Ginagawa nitong posible na magbigay ng maraming posibleng mga disenyo sa halip na lamang differentiating sa pagitan ng isang buong karanasan sa desktop at isang mobile na bersyon. Maaari kang gumawa ng maraming mobile na lasa magagamit hal isa para sa mobile ekspedisyon ng pamamaril sa iPhone at Android pati na rin ang isa para sa Opera at dagdag na isa para sa internet tablet tulad ng iPad.
Tandaan: Bilang default Django-mobile Tinutukoy lamang sa pagitan ng buong at mobile lasa.
Matapos ang tamang lasa ay kahit papaano ay pinili ng mga middlewares, ito ay itinalaga sa mga katangian request.flavour. Maaari mo itong gamitin sa iyong mga tanawin upang magbigay ng hiwalay na lohika.
Lasa ito ay pagkatapos ay gamitin upang halatang ng mga custom na mga template para sa mga espesyal na lasa. Ang napiling template ay magkakaroon ng kasalukuyang lasa prefix sa pangalan ng template na aktwal mong nais na mag-render. Nangangahulugan ito na kapag render_to_response ('index.html', ...) ay tinatawag na may mobile lasa pagiging aktibo ang talagang magbalik ng tugon render gamit ang mobile / index.html template. Ngunit kung ito lasa template ay hindi magagamit ito maganda fallback sa default index.html template.
Sa ilang mga kaso hindi nito ang ninanais na paraan upang magkaroon ng isang ganap na nakahiwalay ang mga template para sa bawat lasa. Maaari mo ring gamitin ang {{lasa}} template variable na baguhin lamang ang maliliit na mga aspeto ng nag-iisang template. Isang maikling halimbawa:
& Nbsp;
& Nbsp; ...
Ito ay magdagdag ng (mobile na bersyon) sa pamagat ng iyong site kung tiningnan sa mga mobile lasa pinagana.
Tandaan: Ang variable ng lasa ng template ay magagamit lamang kung nag-set up ang django_mobile.context_processors.flavour konteksto processor at ginamit RequestContext Django bilang halimbawa konteksto upang mag-render ang template.
Ang pagbabago ng kasalukuyang lasa
Ang mga pangunahing kaso ng paggamit ng Django-mobile ay malinaw naman upang maghatid ng isang mobile na bersyon ng iyong site sa mga gumagamit. Ang pagpili ng tamang lasa ay karaniwang nagagawa sa middlewares kapag ang iyong sariling mga tanawin ay tinatawag na. Sa ilang mga kaso na gusto mong baguhin ang kasalukuyang ginagamit lasa sa iyong pagtingin o sa ibang lugar. Maaari mong gawin ito sa pamamagitan lamang ng pagtawag django_mobile.set_flavour (lasa [, permanente = True]). Ang unang argumento ay nagpapaliwanag sa sarili. Ngunit tandaan na maaari ka lamang pumasa sa isang lasa na rin sa iyong setting FLAVOURS. Kung hindi man set_flavour itataas ng ValueError. Ang opsyonal na permanenteng mga parameter tumutukoy kung ang pagbabago ng lasa ay tandaan para sa mga kahilingan sa hinaharap ng parehong client.
Ang iyong mga gumagamit ay maaaring itakda ang kanilang ninanais na lasa sarili sa kanila. Kailangan lang nila upang tukuyin ang mga parameter ng lasa GET sa isang kahilingan sa iyong site. Permanente nitong piliin ang lasa bilang kanilang kagustuhan upang tingnan ang site.
Maaari mong gamitin ang parameter na ito GET upang ipaalam ang user piliin mula sa iyong magagamit flavors:
- Kunin ang buong karanasan
& Nbsp; - Tingnan ang aming mobile na bersyon
& Nbsp; - Tingnan ang aming bersyon iPad
& Nbsp;
Mga tala sa pag-cache
Django ay pagpapadala may ilang mga paraan ng kaginhawahan upang madaling cache ng iyong tanawin. Ang isa sa mga ito ay django.views.decorators.cache.cache_page. Ang problema sa cache isang buong pahina sa pagsama ng Django-mobile, pag-cache system na Django ay hindi alam ng lasa. Nangangahulugan ito na kung ang unang kahilingan sa isang pahina ay hinahain sa isang mobile na panlasa, ang ikalawang kahilingan ay maaari ring makakuha ng isang pahina render gamit ang mobile lasa mula sa cache - kahit na ang pangalawang isa ay hiniling ng isang desktop browser.
Django-mobile ay pagpapadala may ito sariling pagpapatupad ng cache_page upang malutas ang isyu na ito. Mangyaring gamitin django_mobile.cache.cache_page sa halip na sariling cache_page dekorador Django iyon.
Maaari mo ring gamitin caching middlewares django.middleware.cache.UpdateCacheMiddleware at FetchFromCacheMiddleware Django ng katulad na ginagawa mo. Ngunit upang gumawa ng mga ito ng kamalayan ng lasa, kailangan mong magdagdag ng django_mobile.cache.middleware.CacheFlavourMiddleware bilang pangalawang huling item sa mga setting ng MIDDLEWARE_CLASSES, bago mismo ang FetchFromCacheMiddleware.
Reference
django_mobile.get_flavour ([kahilingan,] [default])
& Nbsp; Kunin ang mga kasalukuyang aktibo lasa. Kung walang lasa matutukoy ay babalik ito bilang default. Maaari itong mangyari kung set_flavour ay hindi na tinatawag na bago sa kasalukuyang ikot ng kahilingan tugon. default na default upang ang unang item sa setting na FLAVOURS.
django_mobile.set_flavour (panlasa, [kahilingan,] [permanente])
& Nbsp; Itakda ang lasa upang gamitin para sa kahilingan. Ito ay taasan ValueError kung lasa ay wala sa setting na FLAVOURS. Maaari mong subukang i-set ang lasa permanenteng para sa kahilingan sa pamamagitan ng pagpasa permanenteng = True. Maaaring mabigo ito kung wala ka sa isang ikot ng kahilingan tugon. humiling ng mga default upang ang kasalukuyang aktibo kahilingan.
django_mobile.context_processors.flavour
& Nbsp; Konteksto processor na nagdaragdag ang kasalukuyang lasa bilang lasa sa konteksto.
django_mobile.context_processors.is_mobile
& Nbsp; Ang konteksto processor ay magdagdag ng is_mobile variable sa konteksto kung saan ay tunay na kung ang kasalukuyang lasa ay katumbas ng setting na DEFAULT_MOBILE_FLAVOUR.
django_mobile.middleware.SetFlavourMiddleware
& Nbsp; Dadalhin bahala sa paglo-load ng naka-imbak na lasa mula sa session ng gumagamit kung nagtakda. Nagtatakda rin ang kasalukuyang kahilingan sa isang thread-lokal na variable. Ito ay kinakailangan upang magbigay ng get_flavour () pag-andar nang hindi na kinakailangang access sa mga kahilingan object.
django_mobile.middleware.MobileDetectionMiddleware
& Nbsp; Nakikita kung ang isang mobile browser sumubok na i-access ang site at itinatakda ang lasa sa DEFAULT_MOBILE_FLAVOUR halaga setting sa kaso.
django_mobile.cache.cache_page
& Nbsp; Katulad ng cache_page dekorador Django ngunit nalalapat vary_on_flavour bago ang view ay pinalamutian ng mga django.views.decorators.cache.cache_page.
django_mobile.cache.vary_on_flavour
& Nbsp; Ang isang dekorador na ginawa mula sa CacheFlavourMiddleware middleware.
django_mobile.cache.middleware.CacheFlavourMiddleware
& Nbsp; Nagdadagdag ng X-Flavour header upang request.META sa process_request at nagdaragdag ng header na ito sa pagtugon ['Vary'] sa process_response.
Pag-customize
May ilang mga punto na magagamit na nagbibigay-daan sa iyo i-customize ang pag-uugali ng Django-mobile. Narito ang ilang mga posibilidad na nakalista sa:
MobileDetectionMiddleware
Ang built-in na middleware upang makita kung ang gumagamit ay gumagamit ng isang mobile browser nagsilbi na rin sa produksyon ngunit ito ay malayo mula sa perpekto at din na ipinapatupad sa isang napaka-simplistic paraan. Maaari mong ligtas na alisin ang middleware mula sa iyong mga setting at magdagdag sa halip ng iyong sariling bersyon. Tiyakin lang na ang tawag ito django_mobile.set_flavour sa isang punto upang i-set ang tamang lasa para sa iyo.
Mga Setting
Narito ang isang listahan ng mga setting na ito ay ginagamit sa pamamagitan ng Django-mobile at maaaring mabago sa iyong sariling settings.py:
FLAVOURS
Ang isang listahan ng mga magagamit na lasa para sa iyong site.
Default: ('buong', 'mobile')
DEFAULT_MOBILE_FLAVOUR
Ang lasa na kung saan ay pinili kung matukoy ang built-in MobileDetectionMiddleware isang mobile browser.
Default: mga mobile
FLAVOURS_TEMPLATE_PREFIX
String na ito ay may prefix sa mga pangalan ng template kapag naghahanap para sa may lasa mga template. Ito ay kapaki-pakinabang kung mayroon kang maraming mga lasa at gustong i-imbak ang mga ito sa isang karaniwang subdirectory. Halimbawa:
mula sa pag-import django.template.loader render_to_string
mula sa pag-import django_mobile set_flavour
set_flavour ('mobile')
render_to_string ('index.html') # magbibigay ng 'mobile / index.html'
# Idagdag ito ngayon upang settings.py
FLAVOURS_TEMPLATE_PREFIX = 'lasa /'
# At subukang muli
set_flavour ('mobile')
render_to_string ('index.html') # magbibigay ng 'lasa / mobile / index.html'
Default: '' (walang laman na string)
FLAVOURS_TEMPLATE_LOADERS
Maaari load template loader Django-mobile mga template ng prefix na ang kasalukuyang lasa. Tukuyin sa ang setting na ito kung saan Loader ay ginagamit upang i-load lasa template.
Default: katulad ng TEMPLATE_LOADERS pagtatakda ngunit walang 'django_mobile.loader.Loader'.
FLAVOURS_GET_PARAMETER
Mababago ng mga user ang lasa na gusto nila upang tumingin sa may parameter ng HTTP GET. Tinutukoy nito ang pangalan ng parameter na ito ang. Itakda ito upang Wala na i-disable.
Default: 'lasa'
FLAVOURS_SESSION_KEY
Kagustuhan ng gumagamit set na may mga parameter GET ay naka-imbak sa session ng gumagamit. Ang setting na ito ay nagpasiya na session key ay ginagamit upang i-hold ang impormasyong ito.
Default: 'lasa'
Ano ang bagong sa paglabas:.
- Idinagdag platform pagkilala
Ano ang bagong sa bersyon 0.2.3:
- Ayusin: itakda ang lasa sa lahat ng mga kaso, hindi lamang kung ang isang mobile browser ay natukoy. Salamat sa John P. Kiffmeyer para sa ulat.
Mga Kinakailangan :
- Python
- Django
Mga Komento hindi natagpuan