Джанго-Mobile е Django приложение, което осигурява лесен начин за откриване на мобилни браузъри и ви дава инструменти в ръката си, за да направи някои различни шаблони, за да достави мобилна версия на сайта си на потребителя.
Идеята е да се запази вашите възгледи точно същото, но с прозрачно разменят местата на шаблоните, използвани да направят коментар. Това се извършва в два етапа:
1. мидълуер определя от предпочитанията на клиента, за да видите вашия сайт. Например ако той иска да използва мобилен аромата или пълната десктоп вкус.
2. шаблон на ОС ще взема после грижи за правилен избор на шаблони, основаващи се на аромата открива в мидълуер.
<Силен> Монтаж
Преди това е необходимо: django_mobile зависи рамка сесия Django е. Така че, преди да се опитате да използвате django_mobile уверете се, че рамката на сесии е активиран и работи.
1. Инсталирайте django_mobile с любимия си инструмент, Python, напр с easy_install django_mobile или PIP инсталирате django_mobile.
2. Добавете django_mobile да си INSTALLED_APPS определящи в settings.py.
3. Добавете django_mobile.middleware.MobileDetectionMiddleware да си настройка MIDDLEWARE_CLASSES.
4. Добавете django_mobile.middleware.SetFlavourMiddleware да си настройка MIDDLEWARE_CLASSES. Уверете се, че тя е в списъка, след MobileDetectionMiddleware и също след SessionMiddleware.
5. Добавете django_mobile.loader.Loader като първа позиция в списъка си с TEMPLATE_LOADERS в settings.py.
6. Добавете django_mobile.context_processors.flavour да си настройка TEMPLATE_CONTEXT_PROCESSORS.
Сега би трябвало да можете да използвате Джанго-мобилни в своята слава. Прочетете по-долу за това как работят нещата и кои настройки могат да бъдат променени, за да променят поведението Джанго-Mobile.
<Силен> Usage
Концепцията на Джанго-мобилен е изгради около идеите на различни аромати за вашия сайт. Например мобилната версия се описва като един възможен вкус, десктоп версията като друг.
Това дава възможност да се осигури много възможни проекти, вместо просто да се прави разлика между пълен десктоп и една мобилна версия. Можете да направите няколко мобилни аромати достъпно напр един за мобилни сафари за iPhone и Android, както и един за Opera и допълнително една за интернет таблетите като IPAD.
<Силен> Забележка: По подразбиране Джанго-мобилен отличава само между пълен и мобилен аромат.
След правилния аромат е по някакъв начин, избран от middlewares, че е назначен атрибута request.flavour. Можете да използвате това в мнението ви за осигуряване на разделно логика.
След това този аромат се използват прозрачно да изберете потребителски шаблони за този специален вкус. Избраният шаблон ще имат ток аромат представка към името на шаблона, който всъщност искат да направят. Това означава, че когато render_to_response ("index.html", ...) се нарича с мобилен ароматът е активна всъщност ще върне отговор постановеното с мобилен / index.html шаблона. Все пак, ако това ароматизирана шаблон не е налична, тя грациозно ще връщане към стандартния шаблон index.html.
В някои случаи не си желания начин да имат напълно отделни образци за всеки вкус. Можете също така да използвате {{}} аромат променлива шаблон, за да се промени, само малки аспекти на единен образец. Кратък пример:
<Главата>
& Nbsp; <заглавие> My сайт {%, ако аромат == "мобилен"%} (мобилна версия) {% endif%} заглавие>
Глава>
<Тялото>
& Nbsp; ...
Тялото>
Това ще добави (мобилна версия) към заглавието на вашия сайт, ако гледа с мобилния аромат активиран.
<Силен> Забележка: променлива шаблон аромат е достъпна само ако сте настроили контекст django_mobile.context_processors.flavour процесор и използва RequestContext Джанго като контекст например, за да стане шаблон.
Промяна на текущата вкус
Основната употреба случая на Джанго-Mobile е очевидно, за да служи на мобилна версия на сайта си на потребители. Изборът на правилния аромат обикновено вече е направено в middlewares когато вашите собствени възгледи се наричат. В някои случаи, което искате да смените използваната в момента аромат според вас или някъде другаде. Можете да направите това, като просто се обадите django_mobile.set_flavour (аромат [, постоянно = True]). Първият аргумент е самостоятелно обяснява. Но имайте предвид, че можете само да премине в аромат, който също е във вашите условия ВКУСОВЕ. В противен случай set_flavour ще повдигне ValueError. Незадължителните постоянни параметри определя, ако промяната на аромата се помни, за следващите заявки на един и същ клиент.
Вашите потребители могат да определят свои желания аромат тях самостоятелно. Те просто трябва да посочите параметъра аромат GET по искане на вашия сайт. Това окончателно ще избере този аромат като предпочитанията им, за да видите на сайта.
Можете да използвате тази GET параметър, за да позволи на потребителите да изберете от наличните си аромати:
- <един HREF = "аромат = пълна?"> Пълният опит
& Nbsp; - <един HREF = "аромат = мобилния?"> Преглед на нашата мобилна версия
& Nbsp; - <един HREF = "аромат = IPAD?"> Преглед на нашата IPAD версия
& Nbsp;
Бележки за кеширане
Django е корабоплаването с някои методи удобство за лесно кешира вашите мнения. Един от тях е django.views.decorators.cache.cache_page. Проблемът с кеширане на цяла страница във връзка с Джанго-Mobile е, кеширане система, която Джанго не е наясно с аромати. Това означава, че ако първата заявка към страница се сервира с мобилен аромат, второто искане може да получите на страницата постановеното с мобилен аромат от кеша - дори и ако вторият е поискано от десктоп браузър.
Джанго-Mobile е корабоплаването със собствен изпълнение на cache_page да разрешите този проблем. Моля, използвайте django_mobile.cache.cache_page вместо собствената cache_page декоратор Django е.
Можете да използвате и Django е кеширане middlewares django.middleware.cache.UpdateCacheMiddleware и FetchFromCacheMiddleware така както го правите. Но за да бъдат наясно с аромати, трябва да добавите django_mobile.cache.middleware.CacheFlavourMiddleware като втора последния елемент в настройките MIDDLEWARE_CLASSES, точно преди FetchFromCacheMiddleware.
<Силен> Референтен
django_mobile.get_flavour ([искане] [подразбиране])
& Nbsp; Get активния в момента вкус. Ако не аромат може да се определи, че ще се върне по подразбиране. Това може да се случи, ако set_flavour не е бил потърсен преди в настоящия цикъл заявка-отговор. по подразбиране по подразбиране е първа точка в настройката красотата.
django_mobile.set_flavour (аромат, [искане] [повече])
& Nbsp; Определете ароматът да бъде използвана за поискване. Това ще повиши ValueError ако аромат не е в настройката красотата. Можете да опитате да зададете ароматът постоянно за заявка чрез преминаване постоянни = True. Това може да се провали, ако сте извън цикъл искане на отговор. да поиска неустойки за активния в момента искането.
django_mobile.context_processors.flavour
& Nbsp; Context процесор, който добавя текущата вкус като вкус към контекста.
django_mobile.context_processors.is_mobile
& Nbsp; Този контекст процесор ще добавите is_mobile променлива да контекста което е вярно, ако текущата аромат е равна на настройката за DEFAULT_MOBILE_FLAVOUR.
django_mobile.middleware.SetFlavourMiddleware
& Nbsp; Грижи за зареждане на съхранява аромата от сесията на потребителя, ако зададете. Също така определя текущата заявка за променлива резба-местен. Това е необходимо, за да се осигури get_flavour () функционалност, без да има достъп до поискване обекта.
django_mobile.middleware.MobileDetectionMiddleware
& Nbsp; открива дали мобилен браузър опита достъп до сайта и да определя вкуса на DEFAULT_MOBILE_FLAVOUR стойност настройки за всеки случай.
django_mobile.cache.cache_page
& Nbsp; Същото като cache_page декоратор Джанго, но важи vary_on_flavour пред гледката е украсена с django.views.decorators.cache.cache_page.
django_mobile.cache.vary_on_flavour
& Nbsp; декоратор създадена от CacheFlavourMiddleware мидълуер.
django_mobile.cache.middleware.CacheFlavourMiddleware
& Nbsp; добавя X-Flavour заглавна да request.META в process_request и добавя този хедър за отговор ["Вари"] в process_response.
<Силен> персонализиране
Има някои точки на разположение, които ви позволяват да персонализирате поведението на Джанго-мобилни. Ето някои възможности, изброени:
MobileDetectionMiddleware
Вграденият мидълуер да се открие, ако потребителят използва мобилен браузър служи добре в производство, но е далеч от съвършенство, а също и изпълнява в много опростен начин. Можете спокойно да се премахне тази мидълуер от вашите настройки и добавяне на собствената си версия, вместо. Просто се уверете, че той призовава django_mobile.set_flavour в някакъв момент да зададете правилния аромат за вас.
Settings
Ето списък на настройки, които се използват от Джанго-мобилни и могат да се променят в собствената си settings.py:
ВКУСОВЕ
Списък на наличните аромати за вашия сайт.
Default: ("пълно", "мобилен")
DEFAULT_MOBILE_FLAVOUR
Ароматът, който е избран, ако вградената MobileDetectionMiddleware открива мобилен браузър.
Default: мобилна
FLAVOURS_TEMPLATE_PREFIX
Този низ ще бъдат предхождани към имената на шаблона, когато търсите ароматизирани шаблони. Това е полезно, ако имате много аромати и искате да ги съхранявате в една обща директория. Пример:
от django.template.loader внос render_to_string
от django_mobile внос set_flavour
set_flavour ("мобилен")
render_to_string ('index.html') # ще направи "мобилен / index.html"
# Предприятието добавите към settings.py
FLAVOURS_TEMPLATE_PREFIX = 'аромати / "
# И опитайте отново
set_flavour ("мобилен")
render_to_string ('index.html') # ще направи "аромати / мобилен / index.html"
Default: '' (празен низ)
FLAVOURS_TEMPLATE_LOADERS
шаблон товарача Джанго-Mobile да заредите шаблони за префикс текущата вкус. Посочете с тази настройка, която товарачи се използват за прехвърляне ароматизирани шаблони.
Default: същото като TEMPLATE_LOADERS определящи, но без "django_mobile.loader.Loader".
FLAVOURS_GET_PARAMETER
Потребителите могат да променят вкуса искат да погледнете с параметър на HTTP GET. Това определя и името на този параметър. Задайте го None да забраните.
Default: "аромат"
FLAVOURS_SESSION_KEY
Предпочитанията на потребителя определена с параметър GET се съхранява в потребителската сесия. Тази настройка определя коя сесия ключ се използва за провеждане на тази информация.
Default: "аромат"
Какво ново в тази версия:.
- Добавена платформа признава
Какво ново във версия 0.2.3:
- FIX: определен аромат във всички случаи, не само при установяване на мобилния браузър. Благодарение на John P. Kiffmeyer за доклада.
<силни> Изисквания :
- Python
- Django
Коментари не е намерена