django-mobile-withstatic

צילום מסך תוכנה:
django-mobile-withstatic
פרטי תוכנה:
גרסה: 0.2.4
טען תאריך: 20 Feb 15
מפתחים: Gregor Mullegger
רשיון: ללא תשלום
פופולריות: 0

Rating: 5.0/5 (Total Votes: 1)

Django-נייד הוא יישום Django שמספק דרך פשוטה כדי לזהות דפדפנים ניידים ונותן לך כלים ביד שלך כדי להבהיר כמה תבניות שונות כדי לספק גרסה ניידת של האתר שלך למשתמש.
הרעיון הוא להשאיר את הדעות שלך בדיוק אותו הדבר אבל למחלף שקוף התבניות משמשות לעיבוד תגובה. הדבר נעשה בשני שלבים:
1. תווך קובע העדפת הלקוח כדי להציג את האתר שלך. לדוגמה: אם הוא רוצה להשתמש בטעם הנייד או טעם שולחן עבודה מלא.
2. מטעין התבנית לוקח אז טיפול של בחירת התבניות הנכונות המבוססות על הטעם שהתגלה בתווך.
התקנה
טרום דרישות: django_mobile תלוי במסגרת המפגש של Django. אז לפני שאתה מנסה להשתמש בdjango_mobile לוודא כי מסגרת המפגשים מופעלת ועובדת.
1. התקן django_mobile עם הכלי האהוב עליך פיתון, למשל עם 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 שלך.
עכשיו אתה אמור להיות מסוגל להשתמש ביחידה ניידת בתפארתה. קראו בהמשך של איך דברים עובדים וניתן צבטו שהגדרות כדי לשנות את התנהגותו של Django-נייד.
שימוש
הרעיון של Django-נייד הוא לבנות סביב הרעיונות של טעמים שונים עבור האתר שלך. לדוגמא הגרסה הניידת מתוארת כטעם אפשרי אחד, גרסת שולחן עבודה כאחרת.
זה מאפשר לספק הרבה עיצובים אפשריים ולא רק הבחנה בין חוויית שולחן עבודה מלאה וגרסה ניידת אחד. אתה יכול לעשות את הטעמים ניידים מרובים לדוגמא זמינה אחד לספארי נייד על iPhone ואנדרואיד, כמו גם אחד לאופרה ואחד נוסף לטבליות האינטרנט כמו iPad.
הערה: כברירת מחדל Django-נייד מבחין רק בין טעם מלא ונייד.
לאחר הטעם הנכון נבחר על ידי איכשהו middlewares, זה שהוקצה לתכונת request.flavour. אתה יכול להשתמש בזה בדעות שלך כדי לספק היגיון נפרד.
טעם זה אז הוא משתמש כדי לבחור בשקיפות תבניות מותאמות אישית לטעם המיוחד הזה. התבנית שנבחרה תהיה הטעם הנוכחי קידומת לשם התבנית שאתה באמת רוצה להבהיר. משמעות הדבר היא כאשר render_to_response ('index.html', ...) נקרא עם הטעם הנייד להיות פעיל יהיה למעשה לחזור תגובה שניתנו עם תבנית index.html / הניידת. עם זאת, אם תבנית בטעם זה אינה זמינה זה בחינניות fallback לתבנית ברירת המחדל index.html.
במקרים מסוימים שלה אינה הדרך הרצויה לי תבניות נפרדות לחלוטין לכל טעם. ניתן גם להשתמש ב{ {}} טעם משתנה תבנית לשנות רק היבטים קטנים של תבנית אחת. דוגמא קצרה:

<ראש>
& Nbsp; האתר שלי {% אם% "ניידים" טעם ==} (גרסה ניידת) {%% endif}

<גוף>
& Nbsp; ...


זה יוסיף (גרסה ניידת) לכותרת של האתר שלך שנצפה אם עם הטעם הנייד מופעל.
הערה: משתנה תבנית הטעם זמין רק אם יש לך להגדיר את מעבד הקשר django_mobile.context_processors.flavour ומשמשים RequestContext של Django כדוגמא הקשר כדי להבהיר את התבנית.
שינוי הטעם הנוכחי
במקרה השימוש הבסיסי של Django-נייד הוא ללא ספק לשרת גרסה ניידת של האתר שלך למשתמשים. הבחירה של הטעם הנכון בדרך כלל כבר עשתה בmiddlewares כאשר דעותיך נקראות. במקרים מסוימים אתה רוצה לשנות את הטעם המשמש כיום במבט שלך או במקום אחר. אתה יכול לעשות את זה פשוט על ידי קורא django_mobile.set_flavour (טעם [, קבע = True]). הטענה הראשונה היא מסבירה עצמית. אבל יש לזכור שאתה יכול רק להעביר בטעם, כי אתה גם הוא בהגדרת הטעמים שלך. אחרת set_flavour יעלה ValueError. פרמטרים הקבועים אופציונליים מגדירים אם השינוי של הטעם הוא זוכר לבקשות עתידיות של אותו לקוח.
המשתמשים יכולים להגדיר הטעם הרצוי שלהם אותם עצמית. הם פשוט צריכים לציין את פרמטר GET הטעם על בקשה לאתר שלך. זה לצמיתות לבחור טעם זה כהעדפה שלהם כדי להציג את האתר.
אתה יכול להשתמש בפרמטר GET זו כדי לאפשר למשתמש לבחור מתוך הטעמים הזמינים שלך:


הערות על מטמון
Django משלוח הוא עם כמה שיטות נוחות למטמון את השקפותיך בקלות. אחד מהם הוא django.views.decorators.cache.cache_page. הבעיה עם מטמון עמוד שלם בשיתוף עם יחידת ניידת היא, מערכת האחסון במטמון של Django שאינה מודעת לטעמים. משמעות הדבר היא כי אם הבקשה הראשונה לדף מוגשת עם טעם נייד, הבקשה השנייה עשויה גם לקבל דף שניתנו עם הטעם הנייד מהמטמון - גם אם השני נתבקש על ידי דפדפן של שולחן עבודה.
Django-נייד משלוח הוא עם יישום cache_page זה לבד כדי לפתור בעיה זו. אנא השתמש django_mobile.cache.cache_page במקום מעצב cache_page של Django עצמו.
ניתן גם להשתמש בmiddlewares מטמון django.middleware.cache.UpdateCacheMiddleware של Django וFetchFromCacheMiddleware כמו שאתה כבר עושה. אבל כדי להפוך אותם מודעים לטעמים, אתה צריך להוסיף django_mobile.cache.middleware.CacheFlavourMiddleware כפריט אחרון שני בהגדרות MIDDLEWARE_CLASSES, ממש לפני FetchFromCacheMiddleware.
הפניה
django_mobile.get_flavour ([בקשה] [ברירת מחדל])
& Nbsp; קבל את הטעם הפעיל כעת. אם ניתן לקבוע ללא טעם הוא יחזור ברירת מחדל. זה יכול לקרות אם set_flavour לא נקרא לפני במחזור הבקשה-התגובה הנוכחית. ברירת מחדל של ברירת מחדל לפריט הראשון בהגדרת הטעמים.
django_mobile.set_flavour (טעם, [בקשה] [קבוע])
& Nbsp; הגדר את הטעם לשמש לבקשה. זה יעלה ValueError אם טעם הוא לא בהגדרת הטעמים. אתה יכול לנסות להגדיר את הטעם באופן קבוע לבקשה על ידי העברה = קבוע נכון. זה עלול להיכשל אם אתה נמצא מחוץ למעגל בקשה-תגובה. לבקש ברירת מחדל לבקשה הפעילה כעת.
django_mobile.context_processors.flavour
& Nbsp; מעבד הקשר זה מוסיף טעם הנוכחי כטעם להקשר.
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 של Django אך חל vary_on_flavour לפני התצוגה מעוטרת בdjango.views.decorators.cache.cache_page.
django_mobile.cache.vary_on_flavour
& Nbsp; מעצב שנוצר מתווך CacheFlavourMiddleware.
django_mobile.cache.middleware.CacheFlavourMiddleware
& Nbsp; הכותרת מוסיף X-טעם לrequest.META בprocess_request ומוסיף כותרת זו לתגובה ['Vary'] בprocess_response.
התאמה אישית
יש כמה נקודות זמינות המאפשרות לך להתאים אישית את ההתנהגות של Django-נייד. הנה כמה אפשרויות מופיעים ברשימה:
MobileDetectionMiddleware
התווך המובנה כדי לזהות אם המשתמש משתמש בדפדפן נייד גם שימש בייצור, אך רחוק מלהיות מושלם וגם מיושם בצורה מאוד פשטנית. אתה יכול להסיר בבטחה תווך זה מההגדרות שלך ולהוסיף גרסה משלך במקום. רק לוודא שהיא מכנה django_mobile.set_flavour בשלב מסוים כדי להגדיר את הטעם הנכון עבורך.
הגדרות
הנה רשימה של הגדרות המשמשות את יחידת ניידת וניתן לשנות בsettings.py שלך:
טעמים
רשימה של טעמים זמינים עבור האתר שלך.
ברירת מחדל: ("מלא", "נייד")
DEFAULT_MOBILE_FLAVOUR
הטעם שנבחר אם MobileDetectionMiddleware המובנה מזהה דפדפן נייד.
ברירת מחדל: נייד
FLAVOURS_TEMPLATE_PREFIX
מחרוזת זו תהיה קידומת לשמות תבנית כאשר מחפשים תבניות בטעם. האפשרות זו שימושית אם יש לך טעמים רבים ורוצים לאחסן אותם בספריית משנה משותפת. לדוגמא:
מrender_to_string יבוא django.template.loader
מset_flavour יבוא django_mobile
set_flavour ("נייד")
render_to_string # ("index.html") יעבד '/ index.html הנייד'
# עכשיו תוסיף את זה לsettings.py
FLAVOURS_TEMPLATE_PREFIX = 'טעמים /'
# ונסה שוב
set_flavour ("נייד")
'/ / Index.html הנייד טעמים' render_to_string ('index.html') # יעבד
ברירת מחדל: '' (מחרוזת ריקה)
FLAVOURS_TEMPLATE_LOADERS
מטעין התבנית של Django-הניידת יכול לטעון תבניות התחילית הטעם הנוכחי. ציין עם הגדרה זו שמעמיסים משמשים לטעינת תבניות בטעם.
ברירת מחדל: כמו TEMPLATE_LOADERS הגדרה אבל בלי 'django_mobile.loader.Loader'.
FLAVOURS_GET_PARAMETER
משתמשים יכולים לשנות את הטעם שהם רוצים להסתכל על עם פרמטר GET HTTP. זה קובע את שמו של פרמטר זה. הגדר אותו לאף אחד להשבית.
ברירת מחדל: 'טעם'
FLAVOURS_SESSION_KEY
ההעדפה של המשתמש להגדיר עם פרמטר GET מאוחסנת בפגישה של המשתמש. הגדרה זו קובעת שמושב מפתח משמש להחזיק את המידע הזה.
'טעם'

מה חדש במהדורה זו:: ברירת מחדל.

  • פלטפורמה נוסף הכרה

מה חדש בגרסת 0.2.3:

  • תיקון: טעם שנקבע בכל המקרים, לא רק אם דפדפן נייד מזוהה. תודה לג'ון פ Kiffmeyer לדו"ח.

דרישות :

  • Python
  • Django

תוכנות אחרות של יזם Gregor Mullegger

תגובות ל django-mobile-withstatic

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!