הגדרות אפליקציה בApp Engine
הגדרות של app.yaml וקצת temaplates
מה זה app.yaml
פרוייקט לדוגמא
https://github.com/jce-il/GAE-word-fun
Word Fun הוא משחק מלים יומי. על המשתמש להתחבר בעזרת חשבון הגוגל שלו ולנסות לנחש את המילה היומית על פי ההגדרה שמופיעה. ברגע שהמשתמש ניחש את המילה המערכת מודיעה לו על כך, והוא לא יכול לשחק עד ליום המחרת.
זהו פרוייקט פשוט מצד אחד, אבל כולל הרבה מרכיבים שתשתמשו בהם במהלך הפרוייקט שלכם. לכן כדאי להיוועץ בו.
הורידו את הפרוייקט למכונה שלכם ונסו להריץ לפני שאנחנו נכנסים לקוד.
מבנה התיקיות
זהו מבנה תיקיות מומלץ בלבד. אני בונה את התיקיות שלי ככה, אתם לא מחויבים לזה.
מה צריך בשביל להגיש עמוד
אז מה בעצם אנחנו צריכים בשביל שעמוד יוצג למשתמש?
ניקח לדוגמא את העמוד http://word-fun.appspot.com/game
בואו נעבור על כל הנקודות בקוד עד שהעמוד יוצג למשתמש
שוב app.yaml
בואו נסתכל בapp.yaml - החלק הכי מעניין זה handlers
כאן אנחנו בעצם נקבע מה יוגש באיזו כתובת של האפליקציה שלנו.
בואו נעבור על ההנדלרים השונים.
יש לנו שורה:
-url: /game
היא תופסת את הכתובת ourapp.appspot.com/game
ואחרי זה השורה:
script: web.pages.game.app
היא יודעת שאם פונים לכתובת המופיעה לעיל אז אנחנו צריכים להריץ את הסקריפט שיושב ב
web/pages
וששמו game.py
משמע:
web/pages/game.py
וכמובן שצריכים להתייחס גם לנקודות החשובות שיש להגדיר בסקריפט game.py:
שימו לב שבמסגרת 4 אתם צריכים לשנות רק את הכתובת בגירשיים ואת שם המחלקה שיתאים למה שכתבתם למעלה
שאלות על app.yaml
שאלות?
Templates
בואו נסתכל שוב game.py.
אנו רואים שבמהלך ריצת הקוד אנחנו מכינים אובייקט (מילון של פייתון) שנקרא template_params ואז מעבירים אותו לפונקצייה שמטפלת בו יחד עם כתובת הטמפלייט:
html = template.render("web/templates/game.html", template_params)
הפונקצייה הזו יודעת לקחת שדות מהאובייקט ולהכניס אותם בטמפלייט במקומות הרלוונטיים ולהחזיר מחרוזת שהיא בעצם הטמפלייט המֵרוּנְדָר.
נקודות מעניינות לגבי game.html:
שאלות על templates
שאלות?