من مترجم: نقدم لك اليوم ترجمة
لمقالة منشورة على SteelKiwi بواسطة Hackernoon. وهي منخرطة في تطوير حلول برمجية b2b و b2c ، وتشارك الخبرة المكتسبة في عملية العمل مع قراء مدونتها.
تجعل الإطارات الحياة أسهل للمطور من خلال تقديم حلول متنوعة لتطوير التطبيقات والخدمات. أنها أتمتة تنفيذ الحلول القياسية ، وتوفير الوقت. وبالتالي ، يركز المطور على التطبيق ، وليس على المهام الروتينية ، حيث لا يحتاج التفكير الإبداعي.
توصي Skillbox بما يلي: مطور بايثون من الدورة التدريبية العملية.
نذكرك: لجميع قراء "هبر" - خصم 10000 روبل عند التسجيل في أي دورة من دورات Skillbox باستخدام الرمز الترويجي "Habr".
تتحدث هذه المقالة عن عشرة من أطر عمل Python التي ستكون مفيدة لكل من المطورين المبتدئين والمحترفين. في عام 2018 ، تم تحديث الأطر القديمة ، ظهرت أدوات جديدة تستحق الانتباه إليها.
قبل أن تبدأ ...
عند البدء في اختيار إطار العمل ، قدر حجم مشروعك وتعقيده. إذا كان ما تقوم بتطويره هو نظام كبير مع عدد لا بأس به من الوظائف ، فإن إطار المجموعة الكاملة هو ما تحتاجه. إذا كنت تقوم بإنشاء تطبيق أو خدمة صغيرة نسبيًا ، فعليك الانتباه إلى الإطارات الدقيقة.
يتم توفير معلومات عن بعض الأطر
على صفحات ويكيبيديا . ومع ذلك ، يجب أن تتخذ القرار النهائي بنفسك استنادًا إلى مبادئ تحليل الخدمة أو التطبيق الخاص بك التي تم التعبير عنها أعلاه.
أطر كاملة المكدس
جانغو
Django هو إطار مجاني كامل المصدر مفتوح المصدر. يسمح لك بإضافة معظم الوظائف القياسية في حزمة واحدة بدلاً من البحث عن مكتبات فردية.
من بينها تلك الشائعة مثل المصادقة وتوجيه URL وترحيل مخطط البيانات وما إلى ذلك.
يستخدم Django ORM لتعيين الكائنات إلى جداول قاعدة البيانات. يعمل نفس الرمز مع قواعد بيانات مختلفة ، لذا فإن الانتقال من قاعدة بيانات إلى أخرى يصبح مهمة بسيطة. قواعد البيانات الرئيسية التي تعمل بها Django هي PostgreSQL و MySQL و SQLite و Oracle. يمكنك إضافة آخرين ، ولكن لهذا تحتاج إلى حلول خارجية.
هرم
Pyramid هو إطار عمل مفتوح المصدر يمنح المطور الحد الأقصى من الفرص بأقل وقت وموارد.
الميزة الأكثر إثارة للإطار هي العمل مع كل من التطبيقات الكبيرة والصغيرة. بشكل منفصل ، يجدر تسليط الضوء على وظائف الهرم مثل:
توربو
TurboGears عبارة عن إطار مكدس مفتوح المصدر مفتوح المصدر لتطبيقات الويب. يسمح للمطور بإنشاء تطبيقات ويب تعتمد على البيانات القابلة للتوسيع بسرعة. يأتي TurboGears مع قوالب مريحة و ORM قوية ومرنة.
أهم وظائف الإطار:
Web2py
وهذا هو إطار مكدس مفتوح المصدر قابل للتطوير لـ Python. ولكن قبل البدء في العمل معها ، تجدر الإشارة إلى أنها غير متوافقة مع Python 3.
لكن Web2py يأتي مع IDE الخاص به والذي يحتوي على محرر كود ، مصحح أخطاء ، ونشر بنقرة واحدة. من بين الوظائف والأدوات الأخرى ، تجدر الإشارة إلى ما يلي:
- عدم الحاجة إلى التثبيت والتكوين ؛
- العمل في Windows و Mac و Google App Engine و Amazon EC2 وعلى أي استضافة تدعم Python 2.5–2.7 أو Java + Python ؛
- العمل مع البروتوكولات المختلفة ؛
- مستوى عال من أمن البيانات ؛
- تعقب الخطأ
- التوافق مع الإصدارات السابقة ، والذي يسمح لك بالعمل بسهولة مع التطبيقات والخدمات بناءً على الإصدارات السابقة من إطار العمل.
ميكروفريم
قارورة
هذا هو إطار مصغر مرخص بموجب BSD. استلهم مطوروها من إطار سيناترا روبي. يعتمد ذلك على مجموعة
أدوات Werkzeug WSGI ونموذج Jinja2 .
يتميز Flask بتصميم معياري يسمح بتكييفه مع العديد من المهام. من خارج منطقة الجزاء ، يتلقى المطور الوظائف التالية:
- خادم ومصحح مدمجان ؛
- قوالب Jinja2
- دعم ملفات تعريف الارتباط الآمنة ؛
- WSGI 1.0 ؛
- يونيكود
- القدرة على الاتصال بأي ORM.
تم إنشاء إطار عمل لدعم مطوري تطبيقات الويب الذين تم منحهم الفرصة لاختيار ملحقات ترضيهم.
زجاجة
هناك إطار مصغر آخر كان يهدف أصلاً إلى إنشاء واجهة برمجة تطبيقات. تتميز الزجاجة بوجود ملف مصدر واحد. العمل معه لا يتطلب "الرقص مع الدف".
تتضمن ميزاته الافتراضية التوجيه والقوالب والأدوات المساعدة وتجريد WSGI الأساسي:
- يدعم التوجيه طلبات عرض المكالمات الوظيفية ، مما يسمح لك بالحصول على عناوين URL نظيفة وديناميكية.
- قوالب - العديد من الأدوات المفيدة التي تعمل خارج الصندوق إلى جانب الدعم الكامل لـ mako و jinja2 و cheetah.
- الأدوات - وصول سهل إلى البيانات ، وتنزيل الملفات ، وملفات تعريف الارتباط ، والعناوين والبيانات الوصفية الأخرى المتعلقة بـ HTTP.
- خادم تطوير HTTP مدمج يدعم الوظائف fapws3 و bjoern و GAE و CherryPy وأي خادم HTTP آخر مع WSGI.
يعد هذا حلاً رائعًا للنماذج الأولية ودراسة بنية أطر الويب وإنشاء تطبيقات صغيرة.
شيريبي
CherryPy هو إطار ويب مفتوح المصدر أضيق الحدود. إنه يوفر القدرة على إنشاء تطبيقات ويب Python ، والتي لا تختلف عن بناء أي برنامج آخر موجه للكائنات.
في الواقع ، يعد تطبيق الويب القائم على CherryPy تطبيق Python قائم بذاته يستخدم خادم الويب الخاص به متعدد الخيوط. تعمل تطبيقات CherryPy على أي نظام تشغيل يدعم Python (Windows و MacOS و Linux وما إلى ذلك). يمكن نشرها في أي بيئة حيث يمكنك تشغيل تطبيق Python عادي. لا تحتاج إلى Apache لتطبيقات CherryPy ، يمكنك تشغيل تطبيق CherryPy في Apache ، تمامًا كما هو الحال في Lighttpd أو IIS.
يسمح لك CherryPy باستخدام أي نوع من التكنولوجيا للنقش ، والوصول إلى البيانات ، إلخ. يمكنه أيضًا معالجة المقالات والإحصائيات وملفات تعريف الارتباط وتحميل الملفات وكل شيء آخر يمكن أن تفعله الإطارات الأخرى.
قدراته المميزة:
- إطلاق بسيط لعدة خوادم HTTP في نفس الوقت ؛
- نظام تكوين قوي ؛
- نظام البرنامج المساعد المرن.
- ميزات "خارج الصندوق": التخزين المؤقت وفك التشفير والجلسات والمصادقة والمحتوى الثابت وما إلى ذلك ؛
- القدرة على العمل ضمن Python 2.7+ و Python 3.1+ و PyPy و Jython و Android.
الأطر غير المتزامنة
سانيكSanic هو إطار عمل Python مبني على uvloop وهو مصمم لمعالجة طلبات HTTP بسرعة.
يعمل على Python 3.5+. يدعم Sanic معالجات الطلبات غير المتزامنة ، مما يجعلها متوافقة مع وظائف Python 3.5 async / انتظار. هذا يزيد بشكل كبير من سرعة العمل.
في المعيار عند معالجة 100 اتصال ، أظهر Sanic القدرة على معالجة 33342 طلبًا في الثانية.
إعصار
تورنادو هو إطار عمل Python على شبكة الإنترنت ومكتبة شبكة غير متزامنة في نفس الوقت. يستخدم شبكة I / O غير محجوبة ويحل مشكلة C10k (مما يعني أنه إذا تم تكوينه بشكل صحيح ، فيمكنه التعامل مع أكثر من 10000 اتصال متزامن).
كل هذا يجعلها أداة ممتازة لإنشاء تطبيقات تتطلب أداءً عاليًا وتعمل مع عشرات الآلاف من المستخدمين في نفس الوقت.
المزايا الرئيسية:
- المدمج في دعم مصادقة المستخدم
- خدمات الوقت الحقيقي ؛
- أداء عالي الجودة ؛
- لغة قالب ويب Python
- عميل HTTP غير المحظور
- تنفيذ أنظمة المصادقة والتفويض من جهات خارجية (Google OpenID / OAuth ، Facebook Login ، Yahoo BBAuth ، FriendFeed OpenID / OAuth ، Twitter OAuth) ؛
- دعم الترجمات والتعريب.
مكافأة
داش
Dash هو إطار عمل Python مفتوح المصدر يُستخدم لإنشاء تطبيقات ويب تحليلية. إنه جيد بشكل خاص لمحترفي البيانات الضخمة الذين ليسوا على دراية كبيرة بتطوير الويب.
تطبيقات Dash هي خوادم الويب التي تقوم بتشغيل Flask وتبادل البيانات باستخدام حزم JSON عبر HTTP. توفر واجهتهم مكونات بقدرات React.js.
يتم عرض التطبيقات التي تم تطويرها باستخدام Dash في مستعرض ويب ويمكن نشرها على الخوادم. تطبيقات داش بطبيعتها عبر منصة.
في الختام ، يمكننا القول أن هناك بالفعل العديد من أطر عمل المطورين. كل واحد منهم يعطي فرصه الفريدة. لكن اختيار إطار العمل هو قرار مهم لمستقبل مشروعك الخاص ، ولا يجب أن تتسرع في ذلك.
توصي Skillbox بما يلي: