في الأيام الأولى لشبكة الانترنيت كان مطوري المواقع يقومون بكتابة كل صفحة من الموقع على حدى بأيديهم ثم يقومون برفعها الى السيرفر وحتى عملية التحديث (محتوى،تحرير أكواد html،تصميم الخ…) تتم بنفس العملية.
بعد ذلك أصبحت تلك المواقع تكبر وتنمو بشكل متسارع و أصبح عدد المستخدمين أكبر وأكبر مما أصبحت عملية انشاء وتحديث المواقع عملية مملة وشاقة ومستهلكة للوقت والجهد معا.
ولكن المشكلة لم تدم طويلا حيث قام مجموعة من المطورين في المركز الوطني لتطبيقات الحوسبة الفائقة أين تم تطوير متصفح موزايك أول متصفح ذو واجهة رسومية بحل المشكلة بالسماح لسيرفرات الويب التعامل مع البرامج الخارجية التي تستطيع توليد صفحات HTML دينامكية وقاموا بتسمية هذا البروتوكول CGI والذي قام بتغيير شبكة الانترنيت الى الأبد.
إنه من الصعب أن نتخيل مالذي سنقوم به من دون بروتوكول CGI فبدلا من معالجة ملفات HTML كأنك تعالج ملف عادي على القرص الصلب يسمح لك هذا البروتوكول بالتفكير في ملفاتك كانها موارد تم توليدها بشكل ديناميكي، ويعني تطوير بروتوكول CGI بداية الجيل الاول من المواقع الدينامكية.
مع كل ايجابيات بروتوكل CGI إلا أنه عان من بعض المشاكل بحيث كانت السكريبتات التي تعمل عليه بحاجة الى القيام بالكثير من عمليات تكرار الأكواد وكان من الصعب عليها إعادة استخدام التعليمات البرمجية وكان ذلك يشكل تحدي كبير بالنسبة للمطورين الاوائل.
قامت لغة PHP بتصحيح العديد من تلك المشاكل — وكأنها جاءت لتقذ العالم من عاصفة رعدية مميتة — وتعتبر حاليا لغة PHP اللغة الأكثر الشعبية في مجال تطوير المواقع الدينامكية ومن مميزاتها انها سهلة الاستعمال و التعلم .
وطبعا للغة PHP سلبيات أيضا ومن أهم سلبياتها هو كثرة الثغرات الأمنية الموجودة في المواقع وذلك راجع الى عدة أسباب منها سهولة تعلم اللغة و بالتالي ظهور العديد من المخربين وعادة مايجد المطورين أنفسهم مجبرين على تعلم الحماية أيضا.
من أجل ذلك ظهرت العديد من الأطر العملية لتطوير الويب وهو مايسمى بالجيل الثالث ومن بين تلك الأطر جانغو، روبي اون ريلز و تتزايد شعبيتهم يوم بعد يوم خاصة هذه الأيام.
وأنت تعلم اخي الكريم ان أهمية شبكة الأنترنيت قد تصاعدت في الأونة الأخيرة ومع ظهور هذه الأدوات الجديدة في تطوير الويب يزيد شغف المطورين بالقيام بالكثير من الأعمال وظهور الجديد يوم بعد يوم.
الى هنا جاء جانغو لتلبية تلك الطموحات وهو عبارة عن إطار عمل مجاني ومفتوح المصدر مكتوب بلغة بايثون، صمم من أجل المساهمة في تطوير صفحات ويب دينامكية وتطبيقات الويب وهو يحتوي على مجموعة من المكونات التي تساعدنا على تطوير المواقع بطريقة سريعة وسهلة وفي وقت قصير للغاية.
ويتبع جانغو أسلوب MVC وهو أحد نماذج معمارية البرمجيات و أصدر جانغو سنة 2003 وفي سنة 2008 تم إنشاء مؤسسة جانغو التي تتولى تطويره ومن أهم أهدافه هو تسهيل تصميم المواقع المعقدة والتي تعتمد على قواعد البيانات
لماذا نقوم بإستخدام جانغو؟
هناك العدبد من اطارات العمل الخاصة بتطوير المواقع بمختلف لغات البرمجة فلماذا نقوم باستخدام جانغو بدلا من الإطارات الأخرى ؟
هناك عدة أسباب تجعلنا نختار جانغوا ومن بين تلك الأسباب :
- سهولة التعلم.
- جودة التطبيقات المنتجة.
- سرعة التطوير.
- حماية نسبية للموقع .
- سهولة صيانة الموقع مع الوقت .
عندما نريد إنشاء موقع الكتروني نحتاج الى مجموعة من المكونات من بينها وسيلة للتعامل مع مصادقة المستخدم (التسجيل،تسجيل الدخول،تسجيل الحروج ) لوحة تحكم بالموقع ، تحميل الملفات والكثير من الوسائل المعروفة في المواقع الدينامكية .
لحسن حظك لاحظ مجموعة من المطورين أن تطوير برامج الويب يواجه بعض المشاكل عند بناء المواقع الالكترونية لذلك قاموا بالتعاون وأطلقوا أطر عمل (جانغو واحد من تلك الاطر) والتي تحتوي على مجموعة كبيرة من المكونات التي يمكننا استخدامها لتوفير الوقت والجهد .
ماذا يحدث عندما يطلب احد موقعك الالكتروني من الخادم الخاص بك؟
عندما يأتي طلب الى سيرفر ويب يقوم بتمريرها الى جانغو حيث يقوم بمحاولة معرفة ماهو المطلوب فعلا من الطلب حيث يقوم أولا بأخذ عنوان صفحة الويب ويحاول معرفة ما يجب القيام به وتتم هذه الخطوة بواسطة الدالة urlresolver (لا حظ أن عنوان موقع يسمي url أي uniform resource locator وبالتالي اسم الدالة urlresolver والتي تعني محلل الروابط تبدو منطقية ) وهي ليست ذكية بما يكفي فكل ماتقوم به هي اخذ مجموعة من قوائم النماذج وتحاول مطابقتها مع الرابط ، حيث يقوم جانغوا بالتحقق من النماذج من الاعلى الى الاسفل واذا وجد اي تطابق يقوم بتمرير الطلب الى الدالة المطلوبة والتي تسمى View.
يقوم ساعي البريد بالمشي خلال الشارع ويتحقق من ارقام البيوت حتى يجد الرقم المناسب عندئذ يقوم بوضع الرسالة عند الرقم المطابق والدالة urlresolver تقوم بنفس العمل .
بالعودة الى الدلة View والتي تقوم بجميع الاعمال المهمة حيث يمكننا إلقاء نظرة على قاعدة المعطيات من أجل البحث عن المعلومات فلربما يريد المستخدم تغيير بعض المعلومات مثل تغيير وصف حالته حيث تقوم الدالة View بالتحقق من اذا كان لهذا المستخدم الصلاحية للقيام بتلك العملية بعد ذلك تقوم بتغيير الوصف وترجع لنا رسالة “تم” ثم تقوم بتوليد الرد ويقوم جانعو بإرسال رسالة الى متصفح المستخدم.
طبعا تغيير الوصف عملية بسيطة ولكن مازال الطريق طويلا امامنا للتعرف على جميع العمليات فكل مانريد معرفته الان هو ألية العمل فقط .
سأكتفي في هذه التدوينة بهذا التعريف المتواضع لجانغوا وسنكتشف الكثير بحول الله في المواضيع القادمة وفي الدرس القادم سنعرف على طريقة تثبيت جانغو للبدأ في العمل .
اكتشاف المزيد من بايثون العربي
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.