إنشاء تطبيق ويب ديناميكي باستخدام FastAPI في Python
تمت الكتابة بواسطة: adel
تارخ آخر تحديث: 21 نوفمبر 2024محتوى المقال
إذا كنت تبحث عن طريقة سريعة وفعالة لبناء تطبيقات ويب ديناميكية وحديثة في Python، فإن FastAPI
هو الإطار المثالي لك. يُعتبر FastAPI من أفضل الخيارات المتاحة لبناء واجهات برمجة التطبيقات (APIs) بفضل سرعته العالية ودعمه القوي لمعايير REST. في هذا المقال، سنستعرض كيفية إنشاء تطبيق ويب ديناميكي باستخدام FastAPI من البداية وحتى تشغيله.
ما هو FastAPI؟
FastAPI
هو إطار عمل حديث لبناء تطبيقات ويب وواجهات برمجة تطبيقات سريعة في Python. يتميز بسرعته الكبيرة في التنفيذ ودعمه للعديد من الميزات الحديثة مثل التحقق من البيانات تلقائيًا، التوثيق التفاعلي، ودعم معيار OpenAPI. يمكن استخدام FastAPI لتطوير تطبيقات ويب معقدة بسرعة وكفاءة، مع تقليل عدد الأخطاء البرمجية بفضل نوع التحقق القوي (type hinting) المتكامل في Python.
تثبيت FastAPI و Uvicorn
لبدء العمل مع FastAPI، نحتاج أولاً إلى تثبيته بالإضافة إلى Uvicorn
، وهو خادم ASGI خفيف وسريع لتشغيل تطبيقات FastAPI:
pip install fastapi uvicorn
إنشاء تطبيق ويب بسيط باستخدام FastAPI
بعد تثبيت FastAPI، سنبدأ بإنشاء تطبيق ويب بسيط يتضمن نقطة نهاية واحدة ترحب بالمستخدمين. دعونا ننشئ ملفًا جديدًا باسم main.py
ونكتب فيه الكود التالي:
from fastapi import FastAPI
# إنشاء تطبيق FastAPI
app = FastAPI()
# إنشاء نقطة نهاية ترحب بالمستخدم
@app.get("/")
def read_root():
return {"message": "مرحبًا بك في تطبيق FastAPI الخاص بنا!"}
في هذا المثال البسيط، قمنا بإنشاء تطبيق FastAPI مع نقطة نهاية واحدة عند الجذر /
التي تعرض رسالة ترحيب عند زيارتها.
تشغيل التطبيق باستخدام Uvicorn
لتشغيل التطبيق، نستخدم Uvicorn
كخادم لتطبيق FastAPI. في سطر الأوامر، يمكنك تشغيل التطبيق باستخدام الأمر التالي:
uvicorn main:app --reload
الأمر --reload
يسمح بإعادة تحميل التطبيق تلقائيًا عند إجراء تغييرات على الكود، مما يجعل التطوير أسرع وأسهل.
إضافة نقاط نهاية متعددة ومعالجة المدخلات
لنقم بتوسيع التطبيق بإضافة نقاط نهاية متعددة ومعالجة المدخلات من المستخدم. سنقوم بإنشاء نقطتي نهاية جديدتين، إحداهما تأخذ اسم المستخدم وتعيد تحية مخصصة، والأخرى تقوم بحساب جمع رقمين.
إضافة نقطة نهاية لتحية مخصصة
لإضافة نقطة نهاية تستقبل اسم المستخدم وتعيد رسالة ترحيب مخصصة:
@app.get("/greet/{name}")
def greet_user(name: str):
return {"message": f"مرحبًا، {name}!"}
عند زيارة /greet/{name}
حيث {name}
هو اسم المستخدم، ستقوم هذه النقطة بإعادة رسالة ترحيب مخصصة.
إضافة نقطة نهاية لحساب جمع رقمين
الآن سنضيف نقطة نهاية تقوم بحساب جمع رقمين يتم إدخالهما كمعلمات URL:
@app.get("/add")
def add_numbers(a: int, b: int):
sum_result = a + b
return {"sum": sum_result}
يمكنك زيارة /add?a=5&b=10
وستحصل على نتيجة الجمع للرقمين 5 و10.
التعامل مع الطلبات POST ومعالجة البيانات
بالإضافة إلى التعامل مع الطلبات GET، يمكنك أيضًا إنشاء نقاط نهاية تتعامل مع الطلبات POST، والتي تُستخدم عادة لإرسال البيانات إلى الخادم. سننشئ نقطة نهاية لتسجيل بيانات المستخدم.
إضافة نموذج بيانات
أولاً، سنستخدم Pydantic
لإنشاء نموذج بيانات للتحقق من المدخلات:
from pydantic import BaseModel
class User(BaseModel):
username: str
email: str
age: int
هذا النموذج يحدد شكل البيانات التي نتوقعها من المستخدم.
إضافة نقطة نهاية لتسجيل المستخدم
الآن سنضيف نقطة نهاية تستقبل بيانات المستخدم عبر طلب POST:
@app.post("/register")
def register_user(user: User):
return {"message": f"تم تسجيل المستخدم {user.username} بنجاح!"}
عند إرسال طلب POST إلى /register
مع بيانات المستخدم، ستقوم هذه النقطة بتسجيل البيانات وإرجاع رسالة تأكيد.
إضافة التوثيق التفاعلي
من أفضل الميزات التي يقدمها FastAPI هي التوثيق التفاعلي المدمج. بمجرد تشغيل التطبيق، يمكنك زيارة /docs
للحصول على توثيق تلقائي وتفاعلي لواجهات برمجة التطبيقات (APIs) الخاصة بك.
عرض التوثيق
للحصول على التوثيق التفاعلي، قم بتشغيل التطبيق وانتقل إلى http://127.0.0.1:8000/docs
في متصفحك. ستجد توثيقًا شاملاً لجميع نقاط النهاية المتاحة، بما في ذلك المعلمات المطلوبة والردود المتوقعة.
نشر التطبيق على خادم
بعد الانتهاء من تطوير تطبيق الويب الخاص بك، قد ترغب في نشره على خادم ليكون متاحًا للمستخدمين. يمكنك نشر تطبيق FastAPI بسهولة على العديد من منصات الاستضافة مثل Heroku، DigitalOcean، أو AWS.
النشر على Heroku
لنشر تطبيقك على Heroku، اتبع الخطوات التالية:
- أنشئ ملف
Procfile
يحتوي على السطر التالي: - قم بإنشاء مشروع جديد على Heroku.
- قم بدفع (push) الكود إلى Heroku باستخدام Git.
- بعد الإعداد، سيكون التطبيق متاحًا عبر الإنترنت.
web: uvicorn main:app --host 0.0.0.0 --port $PORT
خاتمة
يعتبر FastAPI من أفضل الأدوات لبناء تطبيقات ويب ديناميكية وحديثة بسرعة وكفاءة. بفضل سهولة الاستخدام، الأداء العالي، والدعم المدمج للتوثيق التفاعلي، يمكنك بناء تطبيقات قوية وقابلة للتوسع بسهولة. نأمل أن يكون هذا المقال قد قدم لك فهمًا جيدًا حول كيفية البدء باستخدام FastAPI لتطوير تطبيقات الويب الخاصة بك.
طور مهاراتك: مقالات يجب قراءتها في البرمجة
- كيفية إدارة وحفظ الملفات باستخدام مكتبة os في Python
- كيفية كتابة سكربت لتشغيل أوامر النظام في Python
- كيفية استخدام مكتبة pathlib لإدارة الملفات والمسارات في Python
- كيفية إجراء العمليات الحسابية المعقدة باستخدام مكتبة SymPy في Python
- كتابة سكربت لتحليل الروابط باستخدام مكتبة urllib في Python
- كيفية إنشاء تقارير Excel باستخدام مكتبة openpyxl في Python
- كيفية إنشاء تطبيقات سطح المكتب باستخدام PySide في Python
- كيفية استخدام مكتبة PIL لمعالجة الصور في Python
- كيفية بناء نموذج تصنيف باستخدام TensorFlow في Python
- كيفية التعامل مع ملفات XML باستخدام مكتبة xml.etree.ElementTree في Python