התקנת FastAPI
בצעו את השלבים הבאים כדי להתקין את FastAPI במחשב שלכם:
דרישות מוקדמות
- ודאו שיש לכם Python 3.6 או גרסה חדשה יותר מותקנת.
- התקינו את pip (מנהל החבילות של Python).
יצירת סביבת עבודה וירטואלית (אופציונלי)
מומלץ ליצור סביבת עבודה וירטואלית כדי לבודד את תלויות הפרויקט של FastAPI:
python -m venv env
source env/bin/activate # בWindows, השתמשו ב-`env\Scripts\activate`
התקנת FastAPI
הריצו את הפקודה הבאה כדי להתקין את FastAPI:
pip install fastapi
אימות ההתקנה
צרו קובץ Python חדש והוסיפו את הקוד הבא:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"message": "שלום, עולם!"}
לאחר מכן, הריצו את היישום עם:
uvicorn main:app --reload
בקרו בכתובת http://localhost:8000 בדפדפן האינטרנט שלכם. אם תראו את התגובה JSON {"message": "שלום, עולם!"}
, FastAPI הותקן כראוי.
צעדים הבאים
כעת, לאחר שהתקנתם את FastAPI, תוכלו להתחיל לבנות את יישום האינטרנט שלכם. עיינו בתיעוד הרשמי של FastAPI למידע נוסף ולמדריכים.
יצירת יישום בסיסי ב-FastAPI
ליצירת יישום בסיסי ב-FastAPI, עקבו אחר השלבים הבאים:
יצירת קובץ Python חדש
צרו קובץ Python חדש בשם main.py
ופתחו אותו בעורך טקסט.
ייבוא ה-FastAPI
from fastapi import FastAPI
ייבאו את הספריה FastAPI
כדי ליצור את היישום.
יצירת היישום
app = FastAPI()
יצרו אובייקט חדש של FastAPI
ואחסנו אותו במשתנה app
.
הוספת נתיב בסיסי
@app.get("/")
def root():
return {"message": "שלום, עולם!"}
הוסיפו פונקציה הנקראת root
עם הדקורטור @app.get("/")
. פונקציה זו תחזיר תגובה JSON עם המסר "שלום, עולם!" כאשר הנתיב הבסיסי /
מבוקש.
הרצת היישום
לאחר יצירת הקובץ main.py
, הריצו את הפקודה הבאה בטרמינל:
uvicorn main:app --reload
זה יריץ את היישום שלכם בכתובת http://localhost:8000
. בקרו בכתובת זו בדפדפן כדי לראות את התגובה "שלום, עולם!".
צעדים הבאים
עכשיו, כשיש לכם יישום בסיסי, תוכלו להוסיף נתיבים נוספים, לקבל קלט מהמשתמש, לטפל בבקשות POST, PUT ו-DELETE, ולבנות יישומים מורכבים יותר.
כתובת היישום FastAPI
היישום יהיה זמין בכתובת:
http://localhost:8000
כברירת מחדל, FastAPI מאזין לבקשות HTTP בכתובת http://localhost:8000
. ניתן לשנות את הכתובת והפורט באמצעות הפרמטרים של הפקודה uvicorn
.
לדוגמה, כדי להריץ את היישום בכתובת http://127.0.0.1:5000
, יש להריץ את הפקודה הבאה:
uvicorn main:app --host 127.0.0.1 --port 5000
הפרמטר --host
מציין את הכתובת IP שהשרת יאזין אליה, ו---port
מציין את הפורט שהשרת יאזין אליו.
ניתן גם להריץ את היישום בכתובת IP ציבורית, כך שיהיה נגיש מכל כתובת IP. לדוגמה:
uvicorn main:app --host 0.0.0.0 --port 8080
הפקודה הזו תריץ את היישום בכתובת http://your_public_ip:8080
, כאשר your_public_ip
היא הכתובת הציבורית של המחשב שלך.
שים לב: הרצת יישום באופן ציבורי עלולה לחשוף את המחשב שלך לסיכונים אבטחה. לכן, מומלץ להשתמש בשרת ייעודי או בשירותי ענן לצורכי הפצה.
Swagger UI
FastAPI מספק ממשק משתמש אינטראקטיבי להתרעננות בעזרת Swagger UI. ניתן לגשת אליו בכתובת:
http://localhost:8000/docs
Swagger UI מאפשר לך לראות את המסמכים של API שלך, לנסות את הניתובים השונים, ולהציג דוגמאות לבקשות ולתגובות.
FastAPI עם PostgreSQL ו-SQLAlchemy
הגדרת SQLAlchemy
מ-'sqlalchemy' מייצאים את 'create_engine', 'declarative_base', ו-'sessionmaker'
שלב זה מגדיר את החיבור לבסיס הנתונים על ידי יצירת 'engine'.
SessionLocal הוא מנהל הסשן שישמש ליצירת סשן חדש עבור כל בקשה.
'Base' הוא מחלקה אבסטרקטית מהחבילה 'declarative_base' שמאפשרת לנו להגדיר מודלים.
הגדרת מודלים
מ-'sqlalchemy' מייצאים את 'Column', 'Integer', 'String', 'Float', ו-'Boolean'
המודל 'Item' מייצג רשומה בטבלת 'items' בבסיס הנתונים.
יצירת טבלה (אופציונלי)
פקודה זו יוצרת את כל הטבלאות בבסיס הנתונים על ידי המיפוי של מודלים לטבלאות.
שימוש ב-Sessions
מ-'sqlalchemy.orm' מייצאים את 'Session'
פונקציה זו מקבלת סשן חדש ומחזירה אותו.
בסיום השימוש בסשן, הוא ייסגר וישוחרר מהזיכרון.
CRUD פונקציות
מ-'sqlalchemy.orm' מייצאים את 'Session'
פונקציות אלו מבצעות פעולות יצירה, קריאה, עדכון ומחיקה על אובייקטים בבסיס הנתונים.
- create_item: מקבלת סשן ופריט חדש ומוסיפה את הפריט לבסיס הנתונים.
- get_item: מקבלת סשן ומזהה פריט, ומחזירה את הפריט המתאים מבסיס הנתונים, אם הוא קיים, או None אחרת.
- update_item: מקבלת סשן, מזהה פריט ופריט מעודכן, ומעדכנת את הפריט המתאים בבסיס הנתונים.
- delete_item: מקבלת סשן ומזהה פריט, ומוחקת את הפריט מבסיס הנתונים.
תרגולים מורכבים עם FastAPI, ORM ו-PgSQL
תרגיל 1: מערכת ניהול משתמשים
צור מערכת FastAPI לניהול משתמשים הכוללת יצירה, עדכון, קריאה ומחיקה של משתמשים.
תרגיל 2: מערכת פורום
צור מערכת FastAPI לניהול פורום הכוללת יצירה, עדכון, קריאה ומחיקה של פוסטים ותגובות.
תרגיל 3: מערכת משימות
צור מערכת FastAPI לניהול משימות הכוללת יצירה, עדכון, קריאה ומחיקה של משימות.
תרגיל 4: מערכת חנות מקוונת
צור מערכת FastAPI לניהול חנות מקוונת הכוללת יצירה, עדכון, קריאה ומחיקה של מוצרים והזמנות.
תרגיל 5: מערכת בנקאות
צור מערכת FastAPI לניהול בנקאות הכוללת יצירה, עדכון, קריאה ומחיקה של חשבונות בנק ופעולות פיננסיות.
אתה יכול להשתמש בתרגילים אלו כדי להתאמן עם FastAPI, ORM ו-PgSQL בצורה מורכבת יותר.