django-mobile-withstatic

Skjermbilde programvare:
django-mobile-withstatic
Prog.varedetaljer:
Versjon: 0.2.4
Last opp dato: 20 Feb 15
Utvikler: Gregor Mullegger
Lisens: Gratis
Popularitet: 11

Rating: 5.0/5 (Total Votes: 1)

django-mobile er en Django app som gir en enkel måte å oppdage mobile nettlesere og gir deg verktøyene på hånden for å gjengi noen forskjellige maler for å levere en mobilversjon av nettstedet for brukeren.
Ideen er å holde dine synspunkter nøyaktig det samme, men til transparent utveksle malene som brukes til å gjengi et svar. Dette gjøres i to trinn:
1. En mellomvare bestemmer kundens preferanse for å vise nettstedet ditt. F.eks hvis han ønsker å bruke mobil smak eller full desktop smak.
2. mal stykkgods deretter tar hånd om å velge de riktige maler basert på detektert i mellomvare smaken.
Installasjon
Forhåndskrav: django_mobile avhenger session rammeverket Django-tallet. Så før du prøver å bruke django_mobile sørge for at øktene rammeverket er aktivert og fungerer.
1. Installer django_mobile med din favoritt python verktøy, f.eks med easy_install django_mobile eller PIP installere django_mobile.
2. Legg django_mobile til dine INSTALLED_APPS innstillingen i settings.py.
3. Legg django_mobile.middleware.MobileDetectionMiddleware til din MIDDLEWARE_CLASSES innstilling.
4. Legg django_mobile.middleware.SetFlavourMiddleware til din MIDDLEWARE_CLASSES innstilling. Sørg for at den er oppført etter MobileDetectionMiddleware og også etter SessionMiddleware.
5. Legg django_mobile.loader.Loader som første elementet på listen TEMPLATE_LOADERS i settings.py.
6. Legg django_mobile.context_processors.flavour til din TEMPLATE_CONTEXT_PROCESSORS innstilling.
Nå bør du kunne bruke django-mobile i sin prakt. Les nedenfor om hvordan ting fungerer og hvilke innstillinger kan bli forskjøvet til å endre django-mobil oppførsel.
Bruk
Begrepet django-mobil er bygget rundt ideer av forskjellige smaker for nettstedet ditt. For eksempel den mobile versjonen er beskrevet som en mulig smak, skrivebordsversjonen som en annen.
Dette gjør det mulig å tilveiebringe mange mulige utførelser i stedet for bare å skille mellom en komplett stasjonær erfaring og en mobil versjon. Du kan gjøre flere mobile smaker tilgjengelig f.eks ett for mobile safari på iPhone og Android, samt en for Opera og en ekstra en for internett tabletter som iPad.
Merk: Som standard django-mobile bare skiller mellom full og mobil smak.
Etter den riktige smaken er liksom valgt av middlewares, er det tilordnet request.flavour attributtet. Du kan bruke dette i dine synspunkter for å gi egen logikk.
Denne smaken blir deretter bruke til transparent velge tilpassede maler for denne spesielle smaken. Den valgte malen vil ha dagens smak prefiks til malen navnet du faktisk ønsker å gjengi. Dette betyr at når render_to_response ('index.html', ...) kalles med mobil smaken være aktiv faktisk vil returnere et svar gjengitt med mobil / index.html mal. Men hvis dette flavored malen er ikke tilgjengelig det vil grasiøst fallback til standard index.html mal.
I noen tilfeller er ikke den ønskede måten å ha en helt egen maler for hver smak. Du kan også bruke {{smaken}} mal variabel å bare endre små aspekter av en enkelt mal. Et kort eksempel:


& Nbsp; Min side {% hvis smaken == "mobile"%} (mobil versjon) {% endif%}


& Nbsp; ...


Dette vil legge til (mobilversjon) til tittelen på nettstedet ditt hvis sett med mobil smaken aktivert.
Merk: Smaken mal variabelen er bare tilgjengelig hvis du har satt opp django_mobile.context_processors.flavour sammenheng prosessor og brukes Djangos RequestContext som kontekst eksempel å gjengi malen.
Endre dagens smak
Den grunnleggende bruk tilfelle av django-mobile er selvsagt å tjene en mobilversjon av nettstedet for brukerne. Valget av den riktige smaken er som regel allerede gjort i middlewares når dine egne synspunkter kalles. I noen tilfeller du ønsker å endre det nåværende smak i ditt syn eller et annet sted. Du kan gjøre dette ved å ringe django_mobile.set_flavour (smak [, permanent = True]). Det første argumentet er selvforklarende. Men husk at du bare kan passere i en smak som du er også i din SMAKER innstillingen. Ellers set_flavour vil heve en ValueError. De valgfrie faste parametre definerer om endring av smaken er huske for fremtidige forespørsler av samme klient.
Brukerne kan sette sine ønskede smaken dem selv. De trenger bare å spesifisere smaken GET parameter på en forespørsel til nettstedet ditt. Dette vil permanent velge denne smaken som sin preferanse for å vise området.
Du kan bruke denne GET parameter for å la brukeren velge fra tilgjengelige smaker:


Merknader om caching
Django er frakt med noen praktiske metoder for enkelt å cache dine synspunkter. En av dem er django.views.decorators.cache.cache_page. Problemet med caching en hel side i forbindelse med django-mobil er at Djangos caching systemet ikke er klar over smaker. Dette betyr at hvis den første forespørselen til en side serveres med en mobil smak, kan det hende at andre forespørsel også få en side gjengitt med mobil smaken fra cache - selv om den andre ble forespurt av en stasjonær nettleser.
Django-mobile er frakt med egen gjennomføring av cache_page å løse dette problemet. Vennligst bruk django_mobile.cache.cache_page istedenfor Django egen cache_page dekoratør.
Du kan også bruke Djangos caching middlewares django.middleware.cache.UpdateCacheMiddleware og FetchFromCacheMiddleware som du allerede gjør. Men for å gjøre dem oppmerksomme på smaker, må du legge til django_mobile.cache.middleware.CacheFlavourMiddleware som nest siste elementet i MIDDLEWARE_CLASSES innstillinger, rett før FetchFromCacheMiddleware.
Referanse
django_mobile.get_flavour ([forespørsel] [standard])
& Nbsp; Få den aktive smaken. Hvis ingen smak kan bestemmes det vil returnere standard. Dette kan skje hvis set_flavour ikke ble kalt før i den gjeldende forespørselen-responssyklus. standard standard den første elementet i SMAKER innstillingen.
django_mobile.set_flavour (smak, [forespørsel] [permanent])
& Nbsp; Sett smaken som skal brukes for forespørsel. Dette vil heve ValueError hvis smaken er ikke i SMAKER innstillingen. Du kan prøve å sette smaken permanent for forespørsel ved å sende permanente = True. Dette kan mislykkes hvis du er ute av en forespørsel-svar syklus. be om mislighold til det aktive forespørsel.
django_mobile.context_processors.flavour
& Nbsp; Kontekst prosessor som legger dagens smak som smaken til konteksten.
django_mobile.context_processors.is_mobile
& Nbsp; Denne sammenhengen prosessor vil legge en is_mobile variabel til konteksten som er sann hvis den nåværende smak lik DEFAULT_MOBILE_FLAVOUR innstillingen.
django_mobile.middleware.SetFlavourMiddleware
& Nbsp; Tar vare på lasting av lagret smaken fra brukerens session hvis innstilt. Setter også gjeldende forespørsel til en tråd-lokal variabel. Dette er nødvendig for å tilveiebringe get_flavour () funksjonalitet uten å ha tilgang til anmodningen objektet.
django_mobile.middleware.MobileDetectionMiddleware
& Nbsp; Registrerer om en mobilnettleser prøver å få tilgang til området og setter smak til DEFAULT_MOBILE_FLAVOUR innstillinger verdi i tilfelle.
django_mobile.cache.cache_page
& Nbsp; Samme som Djangos cache_page dekoratør men gjelder vary_on_flavour før visningen er dekorert med django.views.decorators.cache.cache_page.
django_mobile.cache.vary_on_flavour
& Nbsp; En dekoratør opprettet fra CacheFlavourMiddleware mellomvare.
django_mobile.cache.middleware.CacheFlavourMiddleware
& Nbsp; Legger X-Flavour header til request.META i process_request og legger dette hodet til svar ['Vary'] i process_response.
Tilpasning
Det er noen poeng tilgjengelig som lar deg tilpasse atferden til django-mobil. Her er noen muligheter oppført:
MobileDetectionMiddleware
Den innebygde mellomvare for å oppdage hvis brukeren benytter en mobil nettleser tjente godt i produksjon, men er langt fra perfekt, og også gjennomført på en svært forenklet måte. Du kan trygt fjerne denne mellomvare fra innstillingene og legge til din egen versjon i stedet. Bare sørg for at det kaller django_mobile.set_flavour på et tidspunkt for å sette den riktige smaken for deg.
Innstillinger
Her er en liste over innstillinger som brukes av Django-mobile og kan endres i din egen settings.py:
SMAKER
En liste over tilgjengelige smaker for nettstedet ditt.
Standard: ("full", "mobile")
DEFAULT_MOBILE_FLAVOUR
Smaken som er valgt hvis den innebygde MobileDetectionMiddleware oppdager en mobilnettleser.
Standard: mobil
FLAVOURS_TEMPLATE_PREFIX
Denne strengen vil være prefiks til malnavn når du søker etter flavored maler. Dette er nyttig hvis du har mange smaker og ønsker å lagre dem i en felles underkatalog. Eksempel:
fra django.template.loader import render_to_string
fra django_mobile import set_flavour
set_flavour ('mobil')
render_to_string ('index.html') # vil gjengi 'mobil / index.html'
# Nå legge dette til settings.py
FLAVOURS_TEMPLATE_PREFIX = 'smaker /'
# Og prøv igjen
set_flavour ('mobil')
render_to_string ('index.html') # vil gjengi 'smaker / mobil / index.html'
Standard: '' (tom streng)
FLAVOURS_TEMPLATE_LOADERS
Django-mobil mal loader kan laste maler innledes med dagens smak. Angi med denne innstillingen som lasterne brukes til å laste flavored maler.
Standard: samme som TEMPLATE_LOADERS innstilling, men uten 'django_mobile.loader.Loader'.
FLAVOURS_GET_PARAMETER
Brukere kan endre smaken de ønsker å se på med en HTTP GET parameter. Dette bestemmer navnet på denne parameteren. Sett det til Ingen for å deaktivere.
Standard: 'smak'
FLAVOURS_SESSION_KEY
Brukerens preferanser satt med GET parameter lagres i brukerens session. Denne innstillingen bestemmer hvilke sesjonsnøkkel brukes til å holde denne informasjonen.
Standard: 'smak'

Hva er nytt i denne utgaven:.

  • Lagt plattform erkjenner

Hva er nytt i versjon 0.2.3:

  • FIX: set smak i alle tilfeller, ikke bare hvis det oppdages en mobilnettleser. Takk til John P. Kiffmeyer for rapporten.

Krav :

  • Python
  • Django

Annen programvare fra utvikleren Gregor Mullegger

django-mobile
django-mobile

14 Apr 15

Kommentarer til django-mobile-withstatic

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!