برمجة وتصميم مواقع الإنترنت لا تهدف إلى توليد كود HTML (وهو ما تجيده لغة PHP) بل تتعداها إلا أمور كثيرة مكررة بل رتيبة ومملة تكون مشتركة في تطوير أغلب المواقع. حيث أن أغلب المواقع تحتاج إلى مواثقة المستخدمين وتتبع الجلسات وتحتاج التحدث مع قاعدة بيانات وتحتاج إلى إلى صفحات لإدخال تلك المعلومات عبر استمارات forms وتحتاج إلى عرض تلك المعلومات بطرق متعددة وقد تحتاج لحفظ نسخ خبيئة cached وغير ذلك.
تقوم أغلب أطر الويب على فكرة MVC أو Model View Controller أي النموذج-العرض-الحاكم أي تقسيم برنامج الويب إلى عناصر مستقلة لا تتداخل هي
تدخل البيانات في الغالب عبر استمارات forms تحتوي على حقول إدخال مثل حقل الإدخال النصي التقليدي أو القائمة المسندلة أو الاختيار من متعدد وغيرها وقد تحتوي أيضا على عناصر إدخال متقدمة تسمى الودجات widgets مثلا حقل اختيار التاريخ يكون على شكل تقويم يعرض أيام الشهر ويمكنك من الانتقال بين الأشهر والسنوات وما يتضمنه ذلك استخدام جافاسكربت.
يفترض أن يوفر إطار الويب طريقة لفحص صلاحية الاستمارة form validation
تحتوي أغلب أطر الويب طريقة لتنفيذ خادم منضدد يأتي ضمنيا معها لسهيل اختبار البرنامج أثناء التطوير.
توفر أغلب أطر الويب أداة تنفذ من سطر الأوامر تمكنك من
تمكنك واجهة الويب من إنشاء مدخلات جديدة بنقرة زر كذلك يمكنك استعارة الكود منها وتعديله لعمل تطبيق الويب الخاص بك.
تمكنك البرمجيات البينية بإضافة ميزة ما إلى بعض أو كل الصفحات في تطبيق الويب عبر تركيب تطبيق آخر وآخر وآخر مثلا عبر WSGI middleware دون تعديل الكثير الكود البرمجي مثلا يمكن وضع تطبيق يعمل على الخدمة من نسخة خبيئة منه إن وجدت وإلا يستدعي التطبيق الذي تحته ويحفظ النسخة الخبيئة.
أشهر أطر الويب في بايثون هي:
يتداخل المشروعان الآخيرين كثيرا فالأبراج مستوحى من تيبوغيرز قبل أن ينتقل هذا الأخير للاعتماد على الأول!!
وجه المقارنة | جانغو | تيربو غيرز | بايلونز |
---|---|---|---|
الربط مع العناوين | أنماط routes | تفضيل نشر الكائنات عبر cherrypy | تفضيل الأنماط routes |
القوالب | قوالب جانغو | تفضيل genshi | تفضيل mako |
تفتقر أطر الويب المصغرة إلى العديد من المزايا السابقة فهي لا تحتوي على نموذج (يمكن تعويض ذلك باستخدام أي ORM مستقل مثل SQLAlchemy أو python-elixir) ولا تحتوي على نظام استمارات ولا ودجات وبعضها قد لا يحتوي على تكامل مباشر مع أي نظام قوالب وبالتأكيد لن تحتوي على نظام مواثقة أو إدارة للمستخدمين ولا نظام تخبئة cache system ولا إدارة للجلسات وغير ذلك
من أفضل هذه الأطر