جدول المحتويات

, , , ,

أطر الويب في بايثون

ما هي أطر الويب ؟

برمجة وتصميم مواقع الإنترنت لا تهدف إلى توليد كود HTML (وهو ما تجيده لغة PHP) بل تتعداها إلا أمور كثيرة مكررة بل رتيبة ومملة تكون مشتركة في تطوير أغلب المواقع. حيث أن أغلب المواقع تحتاج إلى مواثقة المستخدمين وتتبع الجلسات وتحتاج التحدث مع قاعدة بيانات وتحتاج إلى إلى صفحات لإدخال تلك المعلومات عبر استمارات forms وتحتاج إلى عرض تلك المعلومات بطرق متعددة وقد تحتاج لحفظ نسخ خبيئة cached وغير ذلك.

مكونات أطر الويب

مفهوم MVC

تقوم أغلب أطر الويب على فكرة MVC أو Model View Controller أي النموذج-العرض-الحاكم أي تقسيم برنامج الويب إلى عناصر مستقلة لا تتداخل هي

الاستمارات والودجات

تدخل البيانات في الغالب عبر استمارات forms تحتوي على حقول إدخال مثل حقل الإدخال النصي التقليدي أو القائمة المسندلة أو الاختيار من متعدد وغيرها وقد تحتوي أيضا على عناصر إدخال متقدمة تسمى الودجات widgets مثلا حقل اختيار التاريخ يكون على شكل تقويم يعرض أيام الشهر ويمكنك من الانتقال بين الأشهر والسنوات وما يتضمنه ذلك استخدام جافاسكربت.

يفترض أن يوفر إطار الويب طريقة لفحص صلاحية الاستمارة form validation

خادم منضدد

تحتوي أغلب أطر الويب طريقة لتنفيذ خادم منضدد يأتي ضمنيا معها لسهيل اختبار البرنامج أثناء التطوير.

أدوات إدارية

توفر أغلب أطر الويب أداة تنفذ من سطر الأوامر تمكنك من

واجهة ويب إدارية

تمكنك واجهة الويب من إنشاء مدخلات جديدة بنقرة زر كذلك يمكنك استعارة الكود منها وتعديله لعمل تطبيق الويب الخاص بك.

البرمجيات البينية Middleware

تمكنك البرمجيات البينية بإضافة ميزة ما إلى بعض أو كل الصفحات في تطبيق الويب عبر تركيب تطبيق آخر وآخر وآخر مثلا عبر WSGI middleware دون تعديل الكثير الكود البرمجي مثلا يمكن وضع تطبيق يعمل على الخدمة من نسخة خبيئة منه إن وجدت وإلا يستدعي التطبيق الذي تحته ويحفظ النسخة الخبيئة.

مقارنة بين أطر الويب

أشهر أطر الويب في بايثون هي:

يتداخل المشروعان الآخيرين كثيرا فالأبراج مستوحى من تيبوغيرز قبل أن ينتقل هذا الأخير للاعتماد على الأول!!

وجه المقارنة جانغو تيربو غيرز بايلونز
الربط مع العناوين أنماط routes تفضيل نشر الكائنات عبر cherrypy تفضيل الأنماط routes
القوالب قوالب جانغو تفضيل genshi تفضيل mako

أطر الويب المصغرة

تفتقر أطر الويب المصغرة إلى العديد من المزايا السابقة فهي لا تحتوي على نموذج (يمكن تعويض ذلك باستخدام أي ORM مستقل مثل SQLAlchemy أو python-elixir) ولا تحتوي على نظام استمارات ولا ودجات وبعضها قد لا يحتوي على تكامل مباشر مع أي نظام قوالب وبالتأكيد لن تحتوي على نظام مواثقة أو إدارة للمستخدمين ولا نظام تخبئة cache system ولا إدارة للجلسات وغير ذلك

من أفضل هذه الأطر