אין לי יותר ידע משלכם בעניין הזה, אז אפשר לפתוח את זה לדיון.
בכ"מ מבחינת ארכיטקטורה חשוב שלא ישב כמעט קוד ב־main.py, זה יהפוך את הניווט בפרויקט למאוד לא נוח
pelled.idan
כנראה שלא הבנתי נכון אותך או את הדוגמה.
בדוגמה, יש תיקיה בשם route שמכילה את כל הנתיבים. בדוגמה יש גם תיקיה בשם core שנראה שהיא מכילה את הלוגיקה של הפרויקט.
אני חשבתי שתיקיית הrouters שלנו מקבילה לשלהם, ולכן היא צריכה להכיל רק את הנתיבים.
תוכל לכוון אותי איפה הבנתי לא נכון?
2 לייקים
Yam
היי,
עיינתי בתיקיית cores ולא ראיתי לוגיקה. יכול להיות שאני מפספס משהו, אבל יש שם 4 קבצים שקשורים יותר לסטאפ (לוגינג, קונפיגורציה וכד’).
לעומת זאת בתיקייה api/routes אני רואה פה ממש את כל הלוגיקה של התוכנה – התייחסות למשתמשים, פרופילים, הערות וכד’.
יש מצב שאנחנו מדברים על פרויקטים אחרים או משהו?
pelled.idan
אנסה לנסח בצורה שונה.
אני לא הבנתי באיזו תיקייה אני אמור לשמור את הפונקציות הבסיסיות/ כלליות? (יצירת משתמש/ יצוא אירוע ועוד)
בתיקיית הroutes בדוגמה שנתת, יש רק פונקציות שמנתבות את בקשות הget/ post של המשתמש, אין שם פונקציות “כלליות”, לכן אני לא מצליח להבין איפה אני אמור למקם את אותן הפונקציות.
Yam
תראה, יש ב־routes ממש לוגיקה.
נניח הבט על הפונקציה register:
pelled.idan
אז גם אותן פונקציות כלליות אמורות להכנס תחת תיקיית routers?
לדוגמה, כתבתי קובץ שמאחד את כל פעולות הCRUD של המשתמש. הנה דוגמא מתוכו:
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.orm import Session
from app.database.models import User
from app.internal.utils import save
def create_user(username, password, email, session: Session) -> User:
"""Creates and saves a new user."""
user = User(
username=username,
password=password,
email=email,
)
save(user, session=session)
return user
אני חשבתי שהמקום של הקובץ הזה הוא בתיקיית internal, האם הכוונה שלך היא שהוא יהיה בתיקיית routers?
Yam
לדעתי תחת routes אמור להיכנס כל מה שאנחנו רוצים שיהפוך ל־API שאפשר להשתמש בו אח"כ ע"י המשתמשים שלנו, ותחת internal אמורים להיכנס דברים שפחות מתאימים לתפקד כ־API.
לא סגור על זה. אולי ל־@leddest שקרא את הדוקומנטציה לאורכה ולרוחבה תהיה תשובה מדויקת יותר