إنّ مواقع الإنترنت الناجحة ليست مجرّد صفحات HTML ساكنة بل إنّ أغلبها تحتوي على محتويات تفاعلية (تستخدم حسابات أو قواعد بيانات وتتفاعل مع المستخدمين وتسمح لهم بالتعليق والتواصل معاً)، يتم توليد المحتويات عبر لغات برمجة تنفّذ على الخادم.
إنّ تطوير تطبيقات الويب يحتوي على الكثير من الأمور الرتيبة المملّة، ومن هنا ظهرت الحاجة لأطر الويب web frameworks
تمّ تطوير إطار الويب عكاشة أساساً من أجل عمل تطبيق الويب في مشروع ثواب ثم رأيت فصله حتى يمكن الاستفادة منه في عمل تطبيقات أخرى حيث أنه كود عام يصلح لأي تطبيق ويب.
إن أفضل وثيقة لفهم عكاشة هي بالنظر إلى الكود وإلى مثال test.py لكن هذا لا يعني أنه لا يوجد وثائق. يمكنك أن تبدأ بقراءة
هو إطار ويب لعمل تطبيقات ويب متطوّرة بلغة البرمجة بايثون متوافقة مع مبدأ ويز-جي WSGI بكل بساطة وسهولة.
هو الصحابي الجليل عكاشة بن محصن1) رضي الله عنه وهو ممّن يدخلون الجنّة بلا حساب ولا عذاب. قال عنه ابن حجر في الإصابة: من السابقين الأوّلين وشهد بدراً، وقع ذكره في الصحيحين في حديث ابن عباس في السبعين ألفاً الذين يدخلون الجنة بغير حساب، فقال عكاشة: ادع الله أن يجعلني منهم. قال: “أنت منهم”. فقام آخر فقال: “سبقك بها عكاشة”. قيل: استشهد عكاشة في قتال أهل الرّدة.
في القاموس المحيط نجد أنها العَنْكَبوتُ، أو ذُكُورها، أو بَيْتُها (…) عُكاشَةُ الغَنَوِيُّ، وابنُ ثَوْرٍ، وابنُ مِحْصَنٍ، الصحابِيُّونَ.
ذكر ابن منظور في لسان العرب تحت جذر عكش: عكَشَ عليه: حَمَلَ. وعَكِش النباتُ والشعرُ وتعَكَّش: كَثُرَ والتفَّ. وكلُّ شيءٍ لزم بعضُه بعضاً فقد تَعَكَّشَ. وشعرٌ عَكِشٌ ومُتَعَكِّشُ إِذا تلبَّد. وشعر عَكِشُ الأَطراف إِذا كان جَعْداً (…) وشجرة عَكِشَةٌ: كثيرةُ الفروع مُتَشَجِّنةٌ. والعُكَاشة والعُكَّاشةُ: العنكبوت: وبها سمي الرجل. (…) وعُكَيْشٌ وعُكَّاشةُ وعَكَّاشٌ: أَسماء. (…) وعُكَّاشة بن مِحْصن الأَسدي: من الصحابة، وقد يخفّف.
الشكر لأخي طه الزروقي الذي اختار الاسم.
كود عكاشة متوفّر من خلال بوتقة أعجوبة
للحصول على آخر إصدار اتبع الرابط التالي
لغة php ليست لغة نظيفة خصوصا في ما يتعلق بدعم utf-8
نعم تستطيع أن تقول ذلك. إذ يشكّل الصنف baseWebApp المتحكّم Controller ويترك لك الإطار اختيار أي كائن بايثوني ليكون النموذج Model (الذي قد يكون مصدره من قاعدة بيانات عبر elixir) وتحدّد أي نظام قوالب تريد ليكون عنصر العرض.
أطر الويب نوعان push-based و pull-based. الأول تقوم بالمعالجة ثم يدفع بالنتائج والثاني يقوم بعرض صفحة من القالب ثم يسحب النتائج إليها عبر مصادر متعدّدة.
يمكن تطبيق النمطين في حالة عكاشة. يمكنك أن تدفع بالقيم إلى قالب ليتم عرضها، كما ويمكنك البدء بصفحة هيكلية ثم سحب عدة مكونات فيها عبر ajax مثلا باستخدام قالب jsonDumps.
يمتاز عكاشة عن كل أطر الويب التي اختبرتها بالبساطة لهذا أُعرّفه إطار الويب البدهي trivial web framework أو إطار الويب الذي لا يقوم بشيء do nothing web framework بمعنى أنه لا يقف في طريقك ولن يكون صعبا عليك أن تدرك كل ما يحيط به في ذاكرتك دون الرجوع للوثائق.
عكاشة أقرب ما يكون إلى cherrypy وأبعد ما يكون عن django
الكثير من أطر الويب تحدّد لك نموذج البيانات ومحرّك القوالب وغير ذلك من العوامل، كذلك فإنّها غالبا تتطلّب عمل شجرة معقّدة من الملفات والإعدادات، بل إنّها في الغالب تأتي مع برنامج يعمل تلك الشجرة لتشابكها فيقوم البرنامج بعمل الكثير من الملفات التي قد لا تتمكن من هضمها كلها.
في Pylon يتم تعريف طريقة التعامل مع URL من خلال مكتبة routes الذي بدوره يحاكي RoR حيث تربط أنت نمط من العناوين مع دالة معينة. في حين أن طريقة الربط محدّد مسبقا في عكاشة بحيث تمنعك من “إطلاق النار على نفسك!”
باختصار إن إطار عكاشة هو تطبيق لمبدأ بايثوني معروف وهو أن الصريح أفضل من الضمني والبسيط أفضل من المعقد.
يمكنك إطلاق خادم ضمني صغير يقوم بتشغيل تطبيق الويب دون الحاجة لخادم apache.
بما أنه مطابق لمعايير WSGI يمكنك استخدام أي خادم ضمني يدعمها. أفضل مثال على ذلك هو عبر مكتبة python-paste وهي مكتبة بايثونية صرفة لا يزيد حجمها عن واحد ونصف ميغابايت. وهي تعمل على كل الأنظمة بما فيها ويندوز.
إن هناك عشرات الطرق لإطلاق تطبيقات عكاشة شأنه في ذلك شأن تطبيقات WSGI حيث أنها معايير كتابة تطبيقات الويب في بايثون. ومن هذه الطرق
للمزيد انظر صفحة طرق النشر