מבנה קבצים - אתר

היי,

בלייב ה5 שבו ים עובד על המערכת הקבצים של @koby - נראה כי כל קבצי ההגדרה
נמצאים ב קובץ בשם

__init__.py

מצ"ב צילום מסך:

בשונה בגדול ממה שאני אישית חשבתי שעושים.
ממה שהבנתי שעשינו את הפרויקט הוא שהייבוא של פלסק וההגדרות של app נעשים
בתוך app.py

ההתחברות ל database נעשhת איפה שהקוד של הdatabase

משתני סביבה וכאלה אז שוב אפשר לשים בקובץ נפרד כמו config.py או לקבל אותם ישירות לקובץ בו צריך אותם (למשל שמבקשים DATABASR_URL איפה שהחיבור - שהוא בעצם בקובץ של הפונקציות על המסד נתונים.

הייתי שמח לדעת איך בעצם זה עובד שהכל נמצא בinit, האם אכן זו הפרקטיקה הטובה יותר (שואל כדי לדעת להבא)
בנוסף יש פה עוד הגדרות שהייתי שמח להבין או כמו התנאים שקיימים פה שאומרים לו מאיפה לעבוד.

קובי - הייתי שמח אם אתה מוצא זמן פנוי - היית מסביר אפילו מעט על השורות בקובץ הזה, המודולים שייבאת וכו.
אישית זה יעזור לי מאוד.

אביעד אני לא יכול לומר שאני מבין לחלוטין את כל ענין ההגדרות.
ההגדרות שבהן השתמשתי הן מתוך מעקב אחר מדריכים שונים, וכן לאחר ניסיונות שונים, עד שאני מוצא את ההגדרה שעובדת…
להבנתי אין פה ממש ‘נכון’ או לא ‘נכון’ מובהקים. זה קצת ענין של בחירה אישית, איך נוח לך להגדיר.
לצורך הענין, העדפתי לא לצור קובץ קונפיג עבור שתי הגדרות בודדות. נראה לי מיותר, ובחרתי להשאיר אותן בקובץ ההפעלה. מוגדר יש בהגדרות הללו התניה שמפנה אוטומטית למשתני סביבת עבודה אם מוגדרים כאלה, ואם לא, אז ישנה השמה של ערך.
בנוגע לקובץ app.py: יש לי קובץ כזה, אך הוא חיצוני לתיקיית הפרוייקט, ומהווה קובץ הרצה בלבד. בחרתי לעשות את ייבוא המודולים בתוך איניט, מכיוון שזה מאפשר לייבא את app ישירות מתיקיית הפרוייקט. מצרף תמונת מסך של קובץ אחר בפרוייקט עבור הדגמה:
image במידה והייתי יוצר את את מופע פלאסק בקובץ שנקרא app.py, אז כל ייבוא שלו היה צריך להיראות ככה: from app import app. ולדעתי זה מעט מבלבל. אבל שוב, ענין של בחירה אישית. ניתן לעשות גם אחרת, וזה יעבוד טוב באותה המידה.
ייבוא המודולים הוא רגיל עבור עבודה עם פלאסק. אתה מייבא את פלאסק ויוצר ממנה מופע, ושם במשתנה.
מייבא את sqlalchemy ויוצר ממנו מופע על ידי שליחת המשתנה של מחלקת פלאסק, וגם אותו שומר במשתנה DB.
בדיוק אותו התהליך מיושם עבור כל אחת מסיפריות העזר של פלאסק. כל סיפרייה שאתה רוצה לעבוד איתה, אתה מייבא, ושומר במשתנה מופע של המחלקה הזאת, אותו אתה יוצר על ידי שליחת המופע של פלאסק שיצרת לאותה תת ספרייה.
הגדרת login_view היא הגדרה של סיפריית פלאסק לוגאין. כאשר אתה מגדיר ראוט מסוים כ - login requierd, פלאסק לוגאין לא תאפשר כמובן ליוזר שאינו מחובר לפנות לראוט הזה. השאלה היא מה יחזור מהשרת במקרה כזה. במידה ולא תגדיר פה כלום, אז יחזור error 401, שהוא הדיפולט של הסיפרייה. אבל פה אתה בעצם יכול להוביל את המשתמש לכל ראוט אחר. במקרה הזה, הפניתי לעמוד login. אתה יכול להפעיל את האפליקציה, ומבלי להתחבר, להקליד בשורת הכתובת account/, שהוא ראוט מוגן. ותראה שאתה מופנה לעמוד לוגאין.
מקווה שההסברים שלי עזרו קצת :slight_smile:

3 לייקים