كيف تقوم بإنشاء سيرفر ويب في بايثون بإستخدام Flask

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

ولكن يبدو أن بناء سيرفر ويب كامل يبدو شيء مبالغ فيه خصوصا إذا كنت تتعامل مع تطبيقات بسيطة والتي تحتاج إلى بضع وظائف لا غير ، وهنا يبرز دور فلاسك، ويعتبر هذا الأخير إيطار صغير من إيطارات بايثون والذي يمكن إستخدامه لبناء سيرفر ويب وبناء تطبيق ويب ، إذا كيف يمكننا فعل ذلك ؟ وكيف يمكننا بناء سيرفر ويب يمكنه التعامل مع مختلف الطلبات الواردة إليه ؟ أكمل القراءة →

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

فحص ملفات تطبيقات الويب المفتوحة المصدر

أنظمة إدارة المحتوى ومنصات التدوين مثل جوملا ، وردبرس إلخ… تجعل من إطلاق مدونة أو موقع أمر سهل وممتع وتعتبر هذه الأنطمة شائعة على الإستضافات المشتركة أو حتى على شبكات المؤسسات ، جميع الأنظمة لديها طريقة خاصة بها في ترتيب الملفات ، الإعدادات وعمليات الترقيع وعندما لا يوفق مدراء المواقع في إتباع خطوات التثبيت الصحيحة والأمنة سيكون من السهل للمهاجمين في الوصول إلى سيرفر الويب .

ولأننا نستطيع جميعا تحميل أي تطبيق ويب مفتوح المصدر وفحص بينة ملفاتها ومجلداتها على أجهزتنا المحلية يمكننا إنشاء برنامج يقوم بفحص وتعقب جميع الملفات التي يمكن الوصول إليها على الموقع المستهدف وتمكننا هذه الأداة من إجتثثات بقايا ملفات الخاصة بتثبيت تطبيق الويب المستهدف ، المجلدات والدلائل التي من الممكن أن تكون محمية بواسطة ملف htaccess. وغيرها من الأشياء الجيدة التي يمكن أن تساعد المهاجم في الحصول على موطئ قدم على سيرفر الويب الذي يستضيف موقعك . أكمل القراءة →

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

نشر مشروع جانغو على منصة PythonAnywhere

إلى حد الساعة مازال مشروعنا موجود على جهازنا المحلي فقط ولكن نحن بحاجة إلى نشره على الشبكة العنكبوتية وهذا ما سنتعلمه في هذا الدرس .

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

اما الخدمة الاخرى التي سنستخدمها هي GitHub وهي خدمة إستضافة الأكواد البرمجية ومعظم المبرمجين يمتلكون حساب على هذه الخدمة وقد جاء دورنا الأن لإمتلاك حساب على هذا الأخير .

ثلاثة اماكن ستكون مهمة بالنسبة إليك : جهاز الكمبيوتر الخاص بك الذي سيكون مكان للتطوير والتجريب وعندما تكون مسرورا بالتغييرات ستحمل نسخة من البرنامج إلى  GitHub وسيكون موقعك على PythonAnywhere وستقوم بتحديثه من خلال موقع GitHub. أكمل القراءة →

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

تثبيت وحدة سيرفر أباتشي mod_wsgi

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

لمحة تاريخية 

تم التوقف عن تطوير هذه الوحدة لبضع سنوات لأسباب خاصة بالمطور إلا أنه تم إعادة إحياء المشروع في جويلية 2014 مع تطويرات وتحسينات رائعة ومازال العمل على تطوير هذه الوحدة إلى غاية اليوم .

هناك عدة تغييرات طرأت عليها لجعل النشر على سيرفر أباتشي بمساعدة وحدة  mod_wsgi على منصة Docker  أسهر بكثير ، كما تضمنت إحدى التطويرات إمكانية تثبيت هذه الوحدة بإستخدام pip .

متطلبات التشغيل 

يمكن تثبيت و إستخدام وحدة  mod_wsgi على كل التحديثات المرقعة لأباتشي 2.0 ، 2.2، 2.4 على كل أنظمة التشغيل الحديثة وهذا يشمل كل من لينكس وماك والويندوز .

كما ينصح بشدة إستخدام نسخة أباتشي 2.4 لأن النسخ القديمة لها مشاكل في التصميم والتي ممكن أن تتسبب في الإستعمال المفرط للذاكرة في بعض الحالات ، كما أن النسخ الحديثة من وحدة mod_wsgi تحاول التخلص من هذا المشكل في نسخ أباتشي 2.0 و 2.2 .

وفي ما يخص بايثون فإن كل من بايثون 2 و 3 يدعمون هذه الوحدة والحد الأدنى الموصى به لكل من الأصدارين 2.6 و 3.3

سنتكلم في هذا الموضوع عن كيفية تثبيت هذه الوحدة على نظام أوبنتوا . أكمل القراءة →

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

لوحة تحكم بموقع جانغو

تعتبر واجهة مدير المواقع او لوحة التحكم جزء اساسي من البنية التحتية لفئة واسعة من المواقع الإلكترونية وتعتبر هذه الواجهة أي (لوحة التحكم) واجهة محدودة الوصول وهي تقتصر على مسؤول الموقع فقط أو أشخاص موثوق بهم مصرح لهم بالوصول ويمكن القيام بالكثير من الأمور على واجهة التحكم مثل إضافة،تعديل،حذف محتويات الموقع ومن أهم وأشهر الأمثلة يمكننا  كتابة ونشر مواضبيع جديدة على مدونتك.
ولكن هناك مشكلة مع واجهة المدراء وهي الشعور بالملل عند العمل على إنشاءها ، فنحن نحب تطوير الويب عندما يتعلق الامر بواجهة الموقع الخاصة بالزوار حيث يمكن إضافة أو حذف أمور وكل على حسب إبداعه ولكن عندما يتعلق اﻷمر بواجهة التحكم فالأمر واضح وهو لا يتغير من موقع الى أخر فكل ماعليك هو العمل على مصادقة المستخدمين ،عرض النماذج ، التحقق من صحة المدخلات وهلم جرا أليست عملية مملة ومكررة ؟

إذا ماهو جديد جانغو حول هذه العمليات المتكررة المملة ؟ جانغو يقوم بكل هذه العملية مع بضع سطور برمجية لتكون واجهة التحكم جاهزة للعمل .

اليوم سنتكلم عن واجهة المدير التلقائية الخاصة بجانغو وتعمل هذه الميزة من خلال قراءة البيانات الوصفية الموجودة في نموذجنا لتوفير واجهة قوية و جاهزة للإنتاج من قبل مسؤولي الموقع وسنتعلم كيفية تفعيلها وتخصيصها بما يناسبنا . أكمل القراءة →

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع