Django-mobile je aplikace Django, který poskytuje jednoduchý způsob, jak detekovat mobilní prohlížeče & nbsp; a dává vám nástroje, ruce k tomu, aby několik různých šablon dodávat mobilní verzi stránek pro uživatele.
Cílem je, aby se vaše názory úplně stejný, ale transparentně Nezaměňujte šablony používané k tomu, aby odpověď. To se provádí ve dvou krocích:
& Nbsp; 1. Middleware určuje preference klienta pro prohlížení webu. Např. pokud chce používat mobilní chuť nebo celou plochu chuť.
& Nbsp; 2. Šablona loader bere pak péče o výběru správné šablony na základě chuti zjištěného v middlewaru.
Instalace
Pre-Požadavky: django_mobile závisí na rámci relace Djangovo. Takže než se pokusíte použít django_mobile ujistěte se, že je povolen rámec sessions a práce.
& Nbsp; 1. Nainstalujte django_mobile s vaším oblíbeným python nástroje, např s easy_install django_mobile nebo Pip instalovat django_mobile.
& Nbsp; 2. Přidejte django_mobile do INSTALLED_APPS nastavení v settings.py.
& Nbsp; 3. Přidat django_mobile.middleware.MobileDetectionMiddleware do vašeho nastavení MIDDLEWARE_CLASSES.
& Nbsp; 4. Přidat django_mobile.middleware.SetFlavourMiddleware do vašeho nastavení MIDDLEWARE_CLASSES. Ujistěte se, že je to uvedeno po MobileDetectionMiddleware i po SessionMiddleware.
& Nbsp; 5. Přidat django_mobile.loader.Loader jako první položku na seznamu TEMPLATE_LOADERS v settings.py.
& Nbsp; 6. Přidat django_mobile.context_processors.flavour do vašeho nastavení TEMPLATE_CONTEXT_PROCESSORS.
Nyní byste měli být schopni používat Django-Mobile ve své kráse. Přečtěte si níže o tom, jak věci fungují a které nastavení může být vylepšený změnit chování Django-Mobile.
Použít
Koncept Django-Mobile je vybudovat kolem myšlenek různých příchutí pro váš web. Například mobilní verzi je popisován jako jeden z možných chutí, provedení desktop jako druhý.
Díky tomu je možné poskytovat mnoho možných návrhů, ne jen rozlišovat mezi plným desktopů a jeden mobilní verzi. Můžete si vytvořit více mobilních chutí k dispozici například jeden pro mobilní safari na iPhone a Android, stejně jako jeden pro Opera a extra jeden pro internetové tablety jako iPad.
Poznámka: Ve výchozím nastavení Django-mobile rozlišuje pouze mezi plným a mobilním chuti.
Poté, co správná chuť se nějak volený middlewares, to je přiřazen k atributu request.flavour. Můžete použít tuto skutečnost ve své názory, aby samostatné logiku.
Tato chuť je pak použít k transparentně zvolit vlastní šablony pro tento zvláštní chuť. Vybraná šablona bude mít aktuální chuť předponou názvu šablony skutečně chcete vykreslit. To znamená, že když render_to_response ("index.html", ...), je volána s mobilním chuť být aktivní skutečně vrátí odpověď vykresleného s mobilním / index.html předlohy. Pokud však tato ochucená šablona není k dispozici, bude ladně nouzový do výchozí šablony index.html.
V některých případech to není žádoucí způsob, jak mít zcela samostatné šablony pro každou variantu. Můžete také použít {{}} chuť šablony proměnné změnit pouze malé části jednoho šablony. Krátký příklad:
& Nbsp;
& Nbsp; ...
Toto přidá (mobilní verze) názvu vašeho webu při pohledu s mobilním příchutí povolena.
Poznámka: Proměnná chuť šablona je k dispozici pouze v případě, že jste nastavit django_mobile.context_processors.flavour kontext procesoru a použít Djangovo RequestContext jako místní instance k tomu, šablony.
Změna aktuální chuť
Základní use case of Django-Mobile je zřejmě sloužit mobilní verzi stránek pro uživatele. Výběr správného chuti se obvykle již provádí v middlewares, kdy jsou vaše vlastní názory volal. V některých případech budete chtít změnit aktuální chuť do vašeho názoru, nebo někde jinde. To lze provést jednoduše voláním django_mobile.set_flavour (příchuť [, trvalý = True]). První argument je popisná. Ale mějte na paměti, že si jen můžete projít v chuti, který je také v nastavení Aroma. V opačném případě set_flavour vyvolá ValueError. Volitelné trvalé parametry určuje, zda změna chuti je pamatovat pro budoucí požadavky stejného klienta.
Uživatelé mohou nastavit jejich požadovanou chuť jim vlastní. Prostě je třeba zadat parametr chuť dostat se na základě žádosti na vaše stránky. To bude trvale volit tuto variantu jako jejich preference pro zobrazení na webu.
Můžete použít tento parametr GET, aby uživatel vybrat z vašich dostupných příchutí:
- Získejte maximální zážitek
& Nbsp; - Prohlédněte si naši mobilní verzi
& Nbsp; - Prohlédněte si náš iPad verzi
Reference
django_mobile.get_flavour ([žádost] [default])
& Nbsp; získat právě aktivní chuť. Není-li aroma může být stanoveno, že se vrátí výchozí. Tato situace může nastat, pokud set_flavour nebyla volána před v současném cyklu požadavků a odpovědí. výchozí výchozí první položku v nastavení Aroma.
django_mobile.set_flavour (chuť, [žádost] [permanent])
& Nbsp; Nastavení chuť, která se použije na požádání. Tím se zvýší ValueError-li chuť není v nastavení Aroma. Můžete se pokusit nastavit chuť trvale na žádost tím, že projde stálých = true. To může selhat, pokud jste z cyklu požadavků a odpovědí. požádat o výchozí aktuálně aktivní požadavek.
django_mobile.context_processors.flavour
& Nbsp; Context procesor, který přidává aktuální chuť jako chuť do kontextu.
django_mobile.context_processors.is_mobile
& Nbsp; Tento kontext procesor přidá is_mobile proměnnou do kontextu, který je pravdivý, pokud stávající chuť rovná nastavení DEFAULT_MOBILE_FLAVOUR.
django_mobile.middlewares.SetFlavourMiddleware
& Nbsp; se stará o načtení uložené chuť z relace uživatele pokud je nastavena. Také nastaví aktuální požadavek na niti lokální proměnné. To je nutné, aby get_flavour), funkce (bez nutnosti přístupu k objektu požadavku.
django_mobile.middlewares.MobileDetectionMiddleware
& Nbsp; zjišťuje, zda mobilní prohlížeč pokusí o přístup k webu a nastaví chuť DEFAULT_MOBILE_FLAVOUR hodnoty nastavení v případě, že.
Přizpůsobení
Tam jsou některé body k dispozici, které vám umožní přizpůsobit chování Django-mobile. Zde jsou některé možnosti jsou uvedeny:
MobileDetectionMiddleware
Vestavěný middleware zjistit, zda uživatel používá mobilní prohlížeče dobře sloužila ve výrobě, ale zdaleka není dokonalá, a také provádí velmi zjednodušujícím způsobem. Můžete bezpečně odebrat tento middleware z vašeho nastavení a přidat svůj vlastní verzi místo. Jen se ujistěte, že to volá django_mobile.set_flavour v určitém okamžiku nastavit správný chuť pro vás.
Nastavení
Zde je seznam nastavení, která jsou používány Django-Mobile a lze měnit ve vašem vlastním settings.py:
CHUTĚ
Seznam dostupných příchutí pro váš web.
Default: ("full", "mobilní")
DEFAULT_MOBILE_FLAVOUR
Chuť, který je vybrán v případě, vestavěný MobileDetectionMiddleware zjistí mobilního prohlížeče.
Výchozí: mobile
FLAVOURS_TEMPLATE_PREFIX
Tento řetězec bude předponou názvy šablon při hledání ochucené šablony. To je užitečné, pokud máte mnoho chutí a chcete je uložit do společného podadresáři. Příklad:
od django.template.loader dovozu render_to_string
od django_mobile dovozu set_flavour
set_flavour ("mobilní")
render_to_string ("index.html") # odplatí "mobilní / index.html"
# Nyní přidat na settings.py
FLAVOURS_TEMPLATE_PREFIX = 'příchutě / "
# A zkuste to znovu
set_flavour ("mobilní")
render_to_string ("index.html") # odplatí "příchutě / mobile / index.html"
Výchozí hodnota: "" (prázdný řetězec)
FLAVOURS_TEMPLATE_LOADERS
šablona loader Django-Mobile můžete vložit šablony předponou s aktuálním příchutí. Určete s tímto nastavením, které nakladače se používají k načtení ochucené šablony.
Výchozí: stejné jako TEMPLATE_LOADERS nastavení, ale bez "django_mobile.loader.Loader".
FLAVOURS_GET_PARAMETER
Uživatelé mohou změnit chuť chtějí se podívat na s parametrem HTTP GET. To určuje název tohoto parametru. Nastavte ji na Žádný zakázat.
Default: "chuť"
FLAVOURS_SESSION_KEY
Preference uživatele nastavit pomocí parametru GET je uložen v relaci uživatele. Toto nastavení určuje, které klíče relace se používá pro zastavení této informace.
Default: "chuť"Co je nového v této verzi:
- Oprava: nastavit chuť ve všech případech, a to pouze v případě, zjištění mobilní prohlížeč. Díky John P. Kiffmeyer pro tuto zprávu.
Co je nového ve verzi 0.2.2:
- Oprava: Opera Mobile na Android bylo kvalifikováno jako mobilní browser. Díky dgerzo pro tuto zprávu.
- Čichání pro iPad tak, aby se nedostane rozpoznán jako malé mobilní zařízení. Díky Ryan Showalterová na náplasti.
Co je nového ve verzi 0.2.1:
- Pevné obaly otázky, které se nezahrnují django_mobile .cache balíček. Díky Scott Turnbull pro tuto zprávu.
Co je nového ve verzi 0.2.0:
- Restrukturalizace rozvržení projektu pro odstranění settings.py a spravovat .py z adresáře nejvyšší úrovně. To řeší modul, názvů konflikty při instalaci s -e PIP. Díky bendavis78 pro tuto zprávu.
- Přidáno cache_page malíř, který emuluje Djangovo cache_page, ale bere v úvahu chutě. Caching Systém by jinak mezipaměti chuť, která je v současné době aktivní, když nastane cache. Díky itmustbejj pro tuto zprávu.
- Přidáno CacheFlavourMiddleware, který umožňuje ukládání do mezipaměti middlewares Djangovo vědom chutí. Používáme interally Varech záhlaví odpovědí a požadavku záhlaví X-Flavour.
Co je nového ve verzi 0.1.4:
- Opravena chyba v šabloně nakladače, že pouze provedena load_template_source, ale no load_template. Díky tylanpince, rwilcox a Frederic Roland pro tuto zprávu.
Co je nového ve verzi 0.1.3:
- Oprava problému s příkazem runserver, které nebyly zpracovány vše Žádost independed od sebe navzájem. Díky bclermont a Frederic Roland pro tuto zprávu.
Co je nového ve verzi 0.1.2:.
- Pevná neodkazované proměnná chyba v SetFlavourMiddleware
Co je nového ve verzi 0.1.1:
- Pevná is_usable atribut pro django_mobile.loader.Loader. Díky Michela Ledwidge pro tuto zprávu.
Požadavky na :
- Python
- Django
& Nbsp;
Komentáře nebyl nalezen