مقدمة
حين تقوم بتطوير تطبيقات بيثون، يبرز FastAPI كخيار رئيسي لبناء حلول ذات أداء عالٍ. يوفر السرعة والبساطة ودعم للبرمجيات التي تعمل بشكل استقنالي، مما يجعله مناسبًا لتطوير تطبيقات حديثة قابلة للتنمية.
في هذا التورية، سنقوم بتوجيهكم خلال عملية إنشاء تطبيق FastAPI مع قاعدة بيانات NoSQL. عندما يتعلق التخزين والإدارة البياناتية، توفر قواعد البيانات NoSQL المرونة والقابلية للتنمية، مما يجعلها أفضل مناسبة لتطبيقات التي تحتاج إلى التعامل مع هيكلات بيانات متنوعة ومعقدة.
المقادمة
قبل أن تبدأ، يجب أن تتأكد من أنك لديك ما يلي:
-
خوادم تعمل بالأوبونتوس ومستخدم غير رئيسي بواجود المسموح بالقدرات السياسية ومعاينة النظام الحمايي. لتوجيه كيفية ترتيب هذا الإعداد، قم باختيار توزيعكم من هذه القائمة وتتبع إرشادات تكوين الخوادم الأولية. ينبغي أن تعمل بنسخة مدعومة من Ubuntu.
-
اعتياد بسط الأوامر لينكس. من أجل إطلاع أو تحديث لبسط الأوامر، يمكنك زيارة هذا الدليل على موجه لبسط أوامر لينكس.
-
قم بتشغيل
sudo apt-get update
في محطم Ubuntu لتأكد من أن نظامك يمتلك أحدث الإصدارات وتحديثات الأمان للبرامج المتاحة من المستودعات المكونة في النظام الخاص بك.
هذه التعليمات مفروضة على أحدث إصدارات قمر Ubuntu: Ubuntu 24.04 و Ubuntu 22.04 و Ubuntu 20.04. إذا كنت تستخدم إصدار Ubuntu <= 18.04، نوعا ما ن recommentك تحديث لإصدار أحدث لأن Ubuntu لم يعد يقدم دعم لهذه الإصدارات. هذه مجموعة من المرشدات ستساعدك في ترقية إصدارك للUbuntu.
خطوة 1 – إنشاء بيئة Python على جهازك
خلال هذا التورية، سنستخدم حزمة python3
لتشغيل الأوامر. يأتي أحدث إصدارات Ubuntu مع تثبيت Python 3، لذا للتحقق من تثبيته، قم بتشغيل الأمر التالي:
في حال عملت على خطأ هذه، يمكنك تثبيت/إعادة تثبيت الحزمة بتشغيل:
من ثم، يتوجب عليك تثبيت pip
لتثبيت حزم الPython وال依يتيهات بطريقة آمنة.
خطوة 2 – إنشاء بيئة افتراضية
إذا كنت تستخدم إصدار Ubuntu < 24.04، لن تحتاج إلى إنشاء بيئة افتراضية، ولكن من الممكن إعادة تخصيص إعتمادات مشروعك.
بدءاً من Python 3.11 و pip 22.3، يوجد المقالة PEP 668 الجديدة التي تبرر تسمية البيئات الأساسية للPython بـ “مادة خارجية الإدارة”، ما يعني أنه لن يتمكن من استخدام pip
لتثبيت الحزم التاميني بنجاح إلا إذا كان عملك بداخل بيئة افتراضية.
في هذه الخطوة، ستخلق بيئة افتراضية لمشروعك الذي سيقوم بانزال توازنات مع الاحتياجات الخاصة بمشروعك لتجنب تضاربات ممكنة بين إصدارات مختلفة للحزم. قم بتشغيل مجموعة الأوامر التالية في المحرر:
هذه الأمرة ست Installs الحزم المطلوب venv
لإنشاء بيئة افتراضية.
ستنشأ بيئة افتراضية fastapi-env
بداخل دليلك العملي. للبدء في العمل داخل هذه البيئة، يجب أن تفعلها.
وبعد التنفيذ الناجح، سترى المحاور التي تأتي مع تقاطع مثل هذا:
(fastapi-env) user@machine:~$
الآن، يمكنك بدء تثبيت الاحتياجات التامينية داخل هذه البيئة الافتراضية.
خطوة 3 – تثبيت المكتبات والحزم المطلوبين
في هذه الخطوة، ستقوم بتثبيت بعض الحزم والمكتبات التي تحتاج للقيام بهذا التوريتال بنجاح.
لنبدأ بتثبيت fastapi
الذي يتوجب تثبيته لبناء تطبيقك الفاستاPI و uvicorn
الذي يتوجب تثبيته لتشغيل التطبيق الفاستاPI.
في هذا التورية سنستخدم MongoDB كقاعدة بيانات NoSQL. للتفاعل مع MongoDB من خلال FastAPI الخاص بك، يتوجب تثبيت motor
الذي هو مُقود بيانات MongoDB بتعامل استقراري للPython.
الخطوة 4 – تثبيت وإعداد MongoDB على Ubuntu
لتثبيت MongoDB على حاسبك الUbuntu، قم بتنفيذ قومة من الأوامر التالية في المحرر:
بعد تنفيذ الأوامر بنجاح، يمكنك أن تستعيد المادة echo المدعومة. الآن قم بإجراء مرة سريعة:
هذا سيؤكد عليك الحصول على التحديثات الأخيرة بعد ترتيب MongoDB مفاتيح.
وفي الخطوة التالية، يتوجب تثبيت احتياج openssl
في نظامك الذي يتطلب لتثبيت MongoDB.
بعد التنفيذ، سيكون عليك إعادة تشغيل الخدمات. بعد تشغيلها مجدداً، قم بتثبيت MongoDB بأوامر التالية:
قم بتشغيل وتفعيل خدمات MongoDB بالقيام بالأمور التالية:
يمكنك أن تراقب حالة خدمة MongoDB وتجربة اتصال الخاص بالقيام بالأمور التالية:
خطوة 5 – إنشاء تطبيق FastAPI
الخطوة التالية هي إنشاء تطبيق FastAPI. في دليلك العملي، قم بإنشاء ملف database.py
:
هذا يفتح محرر نص فارغ. قم بكتابة منطقة اتصالك بالبيانات هنا.
ما إذا كان mycollection
من mydatabase
مليء ببعض البيانات، فإنك ستقوم بإنشاء main.py
الذي يحتوي على منطقة تطبيقك. في تطبيق FastAPI التالي، يتم إنشاء اتصال بالبيانات باستخدام database.py
وتم تعريف مسارات التنبؤ باستخدام التعامل مع MongoDB. ومن خلال هذه المسارات، يتم تمرير المعلومات المدمجة.
في المحرر النصي، قم بكتابة المنطقة:
هذا تفسير تفصيلي لما يفعل هذا التطبيق:
- نموذج Linear Regression من sklearn: هذا النموذج يتم تنبؤ بالنتيجة وفقاً لخصائص دخلية واحدة.
- InputData من Pydantic Model: هذا يحدد الهيكل التي تتوقعه للبيانات الدخولية لنقطة النهاية التنبؤية. في هذه الحالة، إنه
float
. - مسارات MongoDB: المسارات
/items/
وPOST /items/
تسمح لك بإسترجاع وإدراج العناصر في مجموعة MongoDB الخاصة بك.
الخطوة 6 – تشغيل FastAPI Application
لتشغيل هذا التطبيق بنجاح، عليك تثبيت المكتبات والحزم المستخدمة في التطبيق.
الآن، استخدم الأمر التالي لتشغيل هذا التطبيق:
سيكون ناتج هذا الأمر:
OutputINFO: Will watch for changes in these directories: ['/path/to/your/project']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [XXXXX] using statreload
INFO: Started server process [XXXXX]
INFO: Waiting for application startup.
INFO: Application startup complete.
FastAPI قد جَعل تلقائياً وثيقة توثيق الواجهة الخاصة بالويب للواجهة التفاعلية باستخدام Swagger UI. يمكنك الوصول إليها عن طريق التنقل إلى http://127.0.0.1:8000/docs
.
يمكنك استخدام أدوات مثل curl
أو Postman للتواصل مع نقطة النهاية التي تتنبأ بقيمة بناءً على إدخالك.
curl -X POST "http://127.0.0.1:8000/predict/" -H "Content-type: application/json" -d '{"feature": 3}'
الخطوة 7 [اختياري] – تشغيل التطبيق باستخدام Docker Compose
يمكنك وحدة تطبيقك وتشغيلها باستخدام docker-compose
. وحدة تطبيقك تسهم في توزيع التطبيق بجعل تطبيقك أسهل على الإطلاق للتنفيذ والتنمية وال mantenimiento. لتعريف تطبيقك كوانتوميرفاً، اتبع الخطوات المذكورة في تنفيذ تطبيق FastAPI بواسطة Docker Compose.
ختام
في هذه الدرسة، تعلمت كيفية تأسيس تطبيق FastAPI مع MongoDB، وقد أنشأت تطبيق بسيط يقوم بتخزين واسترجاع التنبؤات الإدخالية.
توازن مادينة FastAPI وقاعدة بيانات NoSQL يوفر بيئة قوية ومرنة لبناء وتنمية تطبيقات قادرة على التنبؤ الذاتي.
Source:
https://www.digitalocean.com/community/tutorials/set-up-fastapi-app-with-nosql-db