في عالم تطوير الويب، يعتبر تأمين الاتصال الآمن عبر المجالات المختلفة أمرًا بالغ الأهمية. هنا يظهر Flask-CORS كأداة حيوية لتطبيقات Flask المبنية باستخدام Python. من خلال تبسيط تكوينات مشاركة الموارد عبر الحدود (CORS)، يعزز Flask-CORS قدرة المطورين على إدارة المصادر المصرح بها التي يمكنها التفاعل مع واجهات برمجة التطبيقات الخاصة بهم بدقة.
للبدء في التطوير كمحترف، انقر على الزر أدناه الآن! 👇
لا يحمي هذا فقط البيانات الحساسة، بل يعزز أيضًا التكامل السلس للوظائف وتبادل البيانات بين تطبيق Flask الخاص بك والموارد الخارجية، مما يمهد الطريق لإنشاء تطبيقات ويب قوية وغنية بالميزات.
نظرًا لأن القلق الرئيسي لهذا المقال يتعلق بـ Flask ومشاركة الموارد عبر الحدود، سنلقي نظرة عن كثب على كلا المفهومين قبل كيفية تمكين مجموعة Flask-CORS.
ما هو Flask؟
تشير Flask إلى إطار عمل ويب بلغة Python يوفر أساسًا خفيف الوزن ومرنًا لبناء تطبيقات الويب.
الجوانب الرئيسية لـ Flask
فلسفة بسيطة
على عكس الأطر الشاملة، تتبنى Flask نهجًا بسيطًا. تقدم وظائف أساسية لتطوير الويب، مثل التوجيه ومعالجة الطلبات، ولكن لا تفرض هيكلًا صارمًا.
هذا يسمح للمطورين باختيار المكتبات والامتدادات الإضافية التي يحتاجونها لمشروعهم المحدد، مما يعزز التخصيص وتعديل الإطار حسب متطلباتهم.
التوجيه
تستخدم Flask نظام توجيه يربط عناوين URL بمهام Python (تسمى العروض). عندما يصل مستخدم إلى عنوان URL محدد، يتم تنفيذ وظيفة العرض المقابلة.
يوفر هذا النظام المرن للتوجيه تحكمًا دقيقًا للمطورين حول كيفية معالجة عناوين URL وما هي الإجراءات التي يتم تفعيلها.
تكامل محرك القوالب
لا تتعامل Flask وحدها مع القوالب، ولكنها تتكامل بسلاسة مع محركات القوالب الشهيرة مثل Jinja2.
تمكن هذه محركات القوالب المطورين من إنشاء قوالب HTML ديناميكية باستخدام بناء جملة مختصر، حيث يمكن تضمين المتغيرات والمنطق داخل القوالب. لذلك، يمكنها إنتاج محتوى مخصص للمستخدمين.
معالجة الطلبات والاستجابات
توفر Flask أدوات لمعالجة الطلبات الواردة HTTP وتوليد الاستجابات المناسبة من خلال طلب معلومات كائن مثل رؤوس الطلب، وملفات تعريف الارتباط، والبيانات التي أرسلها العميل. سيتمكن المطورون أيضًا من إنشاء وتخصيص استجابات HTTP مع الرؤوس، وأكواد الحالة، وأجسام الاستجابة.
خفيف وسريع
تستهلك Flask طاقة حوسبة أقل، مما يسمح لها بامتلاك وقت بدء تطبيق أسرع واستهلاك ذاكرة أقل مقارنةً بأطر العمل الشائعة الأخرى.
سهل الاستخدام
تحتوي Flask على قاعدة شفرة نظيفة وموثقة جيدًا مما يجعلها سهلة التعلم والاستخدام للمبتدئين. هذه المنحنى التعليمي السلس يسمح للمطورين بالتركيز أكثر على بناء منطق تطبيقهم بدلاً من الكفاح مع أطر العمل التي يصعب فهمها.
قابل للتوسيع
تفتخر Flask بوجود نظام غني من الامتدادات التابعة لجهات خارجية التي توفر وظائف إضافية. تغطي هذه الامتدادات مجموعة واسعة من الاحتياجات، من التفاعل مع قواعد البيانات والمصادقة إلى معالجة النماذج والأمان.
خادم التطوير المدمج
تأتي Flask مع خادم تطوير مدمج للاختبار المحلي وتصحيح الأخطاء. يسمح ذلك للمطورين بتشغيل تطبيقاتهم بسرعة والتكرار على تغييرات الشفرة دون الحاجة إلى إعداد خادم ويب منفصل.
دليل خطوة بخطوة لاستخدام Flask-CORS
ستتضمن هذه الوثيقة دليلًا مبسطًا حول كيفية تثبيت Flask-CORS على جهازك، حتى تتمكن من البدء في استخدام الإضافة في واجهات برمجة التطبيقات وتطبيقات Flask الخاصة بك!
التثبيت
ابدأ بتثبيت مكتبة Flask-CORS باستخدام pip:
pip install flask-cors
الاستخدام الأساسي
1. استورد Flask-CORS ونسخة تطبيق Flask الخاص بك:
from flask import Flask
from flask_cors import CORS
2. قم بإنشاء نسخة من تطبيق Flask الخاص بك:
app = Flask(__name__)
3. قم بتهيئة Flask-CORS. بشكل افتراضي، يسمح ذلك بطلبات CORS من جميع المصادر:
CORS(app)
تمكين CORS لمصادر محددة
أثناء التهيئة، يمكنك تحديد المصادر المسموح بها كقائمة:
CORS(app, origins=['http://allowed-domain1.com', 'http://allowed-domain2.com'])
تخصيص سلوك CORS (اختياري)
توفر Flask-CORS خيارات لتكوين جوانب مختلفة من سلوك CORS:
- الطرق المسموح بها: حدد أي من طرق HTTP (GET، POST، PUT، DELETE) مسموح بها لطلبات CORS.
- الرؤوس المسموح بها: حدد أي الرؤوس يمكن تضمينها في طلبات CORS.
- الرؤوس المعروضة: حدد أي الرؤوس من استجابة الخادم يجب أن تكون مرئية لتطبيق العميل.
- الحد الأقصى للعمر: قم بتحديد المدة التي يجب على المتصفحات خلالها تخزين الطلبات المقدمة (المرتبطة ببعض الطرق).
راجع وثائق Flask-CORS للحصول على معلومات مفصلة حول هذه الخيارات: https://github.com/corydolphin/flask-cors

التكامل مع الموجهات
بشكل افتراضي، ينطبق Flask-CORS على جميع الموجهات في تطبيقك. يمكنك أيضًا استخدام @cross_origin()
الزخرفة على موجهات معينة لتمكين CORS لتلك الموجهات فقط. إليك مثال:
@app.route("/")
@cross_origin() # قم بتمكين CORS لهذه الموجهة
def hello_world():
return "Hello, World!"
تذكر:
- عمومًا، لا يُنصح بتمكين CORS لجميع المصادر في بيئات الإنتاج بسبب اعتبارات الأمان.
- قم بتكوين المصادر المسموح بها بعناية بناءً على متطلبات تطبيقك.
- راجع وثائق Flask-CORS للحصول على تفاصيل شاملة وسيناريوهات الاستخدام المتقدمة.
ابدأ في إنشاء واجهات برمجة التطبيقات Flask باستخدام Apidog
إذا كان لديك بالفعل شفرة Python جاهزة لواجهة برمجة تطبيقات Flask، كل ما عليك فعله هو الحصول على منصة واجهة برمجة التطبيقات للبدء في تطويرها بصريًا!
إذا لم تستخدم أداة واجهة برمجة تطبيقات من قبل، نوصي بشدة بتجربة Apidog، وهي أداة متطورة لتطوير واجهات برمجة التطبيقات التي تجهز المستخدمين بكل الأدوات اللازمة لدورة حياة واجهة برمجة التطبيقات بالكامل.

صمم وعدل واجهات برمجة التطبيقات بالطريقة التي تريدها باستخدام Apidog
يمكن أن empower Apidog أي مستخدم أن يمتلك القدرة على إنشاء واجهة برمجة التطبيقات الخاصة به، وبالتالي، لا يوجد سبب للاعتراض على واجهة برمجة التطبيقات التي لا تلبي احتياجاته!

ابدأ بالضغط على زر New API
، كما هو موضح في الصورة أعلاه.

في هذا القسم، ستقوم بإتقان كيف تتفاعل واجهة برمجة التطبيقات الخاصة بك مع التطبيقات. يمكنك تحديد:
- الطرق التي ستستخدمها التطبيقات للتواصل (GET، POST، PUT، DELETE).
- عنوان URL المحدد (نقطة النهاية) حيث ستتصل التطبيقات.
- أي تفاصيل أساسية مطلوبة داخل عنوان URL لاستهداف بيانات معينة.
- وصف واضح لما يحققه هذا الجزء المحدد من واجهة برمجة التطبيقات الخاصة بك.
اختبار واجهات برمجة التطبيقات باستخدام Apidog
يأتي الاختبار مباشرة بعد تصميم واجهة برمجة التطبيقات. مع Apidog، يمكنك مباشرة البدء في اختبار واجهة برمجة التطبيقات الخاصة بك، لمعرفة ما إذا كانت هناك أي عيوب موجودة في التصميم الحالي.

الخطوة الأولى هي إدخال نقطة النهاية المحددة لواجهة برمجة التطبيقات التي ترغب في اختبارها. أضف تفاصيل إضافية مثل المعلمات إذا لزم الأمر للاختبار لديك API المحدد.
إذا لم تكن متأكدًا من استخدام معلمات متعددة في عنوان URL، يمكن أن توجهك هذه المقالة حول كيفية الوصول إلى المورد المحدد ضمن مجموعات البيانات الأكبر!


النقر على Send
يُطلق الطلب ويكشف استجابة واجهة برمجة التطبيقات بالتفصيل الكامل. تحقق من كود الحالة لمعرفة ما إذا كان الطلب ناجحًا. يمكنك أيضًا فحص الاستجابة الخام، والتي توفر تنسيق البيانات المحدد الذي يمكن أن يستخدمه كود العميل لمعالجة المعلومات المرسلة من خوادم الخلفية.
الخاتمة
يظهر Flask-CORS كحل قوي وسهل الاستخدام لإدارة تكوينات CORS داخل تطبيقات Flask. من خلال تبسيط العملية، فإنه يمنح المطورين القدرة على التحكم بدقة في المجالات الخارجية التي يمكنها التفاعل مع واجهات برمجة التطبيقات الخاصة بهم. يضمن هذا الاتصال الآمن ويعزز التكامل السلس مع الموارد الخارجية. سواء كنت تبني تطبيق ويب بسيط أو خدمة ويب معقدة، فإن Flask-CORS يمكّنك من إقامة اتصال آمن ومتحكم بين تطبيق Flask الخاص بك والعالم الخارجي، مما يمهد الطريق لإنشاء تطبيقات قوية وغنية بالميزات.
علاوة على ذلك، فإن قابلية التوسع وسهولة الاستخدام لـ Flask-CORS يجعلانها خيارًا جذابًا للمطورين من جميع مستويات الخبرة. مع وثائقها الواضحة وخيارات التكوين المتاحة بسهولة، تساعد Flask-CORS المطورين في التركيز على بناء الوظائف الأساسية لتطبيقاتهم دون الانغماس في تكوينات CORS المعقدة. مع استمرار تطور تطوير الويب، من المحتمل أن تظل Flask-CORS أداة حيوية للمطورين الذين يسعون إلى حل قوي ومرن لإدارة CORS داخل تطبيقاتهم Flask.