تطوير الويب 28/11/2021

Desc Text.

مقدمة

حديثنا اليوم عن تطوير الويب أو الـbackend development، سنختصر الهدف من تطوير الويب في ثلاث نقاط:

  1. المحتوى الديناميكي
  2. مشاركة الزوار في انشاء المحتوى
  3. التحكم في الوصول

ولفهم كل واحدة منهم يجب علينا معرفة كيف كانت تتم الأمور. دعونا نفترض أن المواقع صفحات HTML ثابتة كالماضي.

سيكون معنا سيرفر بالاسم facebook.com فيه الصفحة الرئيسية index.html وكذلك مجلد profiles ولكل مستخدم نحتاج صفحة html تمثل صفحته الشخصية، على سبيل المثال سيكون لدينا الصفحات:

  1. wusaby.rush.html
  2. mohammed.html
  3. aseer-alahzan.html

التفاصيل السابقة للسيرفر، بالنسبة للزائر كل ما يحتاجه أن يزور السيرفر، ويحدد أي صفحة يرغب بزيارتها، على سبيل المثال الرابط https://facebook.com/ -الشرطة الأمامية في نهاية الاسم تعني الصفحة الرئيسية index.html - أما من يزور الرابط https://facebook.com/profiles/aseer-alahzan.html فيوجه طلب مباشر للسيرفر: “اعطني الملف aseer-alahzan.html الموجود في مجلد profiles

المحتوى الديناميكي

في المثال السابق احتجنا صفحة لكل مستخدم، ماذا لو كان لدينا برمجية تقرأ بيانات جميع المستخدمين من مستودع بيانات وتملك قالب profile.html للمستخدمين، بحيث تستجيب للطلب https://facebook.com/profiles/wusaby.rush.html كالآتي:

  1. تبحث في مستودع البيانات عن wusaby.rush .
  2. في حال وجدت بيانات له تنشئ نسخة من الملف profile.html ببيانات المستخدم.
  3. ترسل الصفحة المُولدة للمستخدم

العملية تشبه انشاء شهادات حضور هذه الدورة، حيث لدينا ملف بيانات، وبرمجية تولد الشهادات باستخدام قالب

مشاركة الزوار في انشاء المحتوى

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

التحكم في الوصول

صار لدينا الان برمجية تولد الصفحات بناءا على مستودع بيانات، وأيضا قادرة على أخذ البيانات من الزوار وتخزينها في نفس المستودع، مع مجهود بسيط مع جمل if else يسمح لنا بتحديد الصلاحيات، من يمكنه الوصول للموقع، بل وأي بيانات له القدرة على الوصول إليها.

العمليات السابقة جميعها هي ما سمح بظهور مصطلح الـweb2 حيث يمكن للمستخدمين إنشاء محتوى الموقع، خلاف الweb1 حيث لا يملك أحد القدرة على انشاء المحتوى عدا مالك الموقع.

لغات الوب

يمكنك تطوير الوب حتى بلغة c++، لكن البديهي أنك ستلجأ للغات أسهل في التعامل مع الوب مثل: PHP، و Python وnodeJS - nodeJS و deno هي مفسرات للغة javascript توفر لها الدوال والوظائف التي تسمح بالاستجابة للشبكة ونظام الملفات وقواعد البيانات … وحتى هذه اللغات لديها إطارات عمل تقلل من الوقت والتكلفة، وغالبا ستختار:

بماذا نبدأ ؟

في بدايتك مع الوب، تحتاج لفهم كيف يعمل الوب، الرسائل كـ200، أو 404، أو 304، كذلك الـcookies وغيرها.

بعد استيعابك لكل هذه المصطلحات، ستصبح فعلا مطور وب وستكون اللغات أو إطارات العمل مجرد أداوات ستستخدم كل واحدة منها بما يناسبك. هنا سنبدأ مع flask وهو إطار عمل بسيط للبايثون، يمكننا التعلم عليه بسهولة، وكذلك استخدامه في البيئات الإنتاجية.

في حال كانت بايثون مثبتة لديك مسبقا فيمكن تثبيت flask من سطر الأوامر

pip install flask

التعرف على بايثون

بالتأكيد لن نبدأ في flask بدون معرفة هياكل لغة بايثون وطريقة الكتابة بها، الأمثلة التالية تقارنها بلغة javascript والتي تعرفت عليها في المحاضرة الثانية.

التحكم الشرطي

الدوران بـwhile

الدوران بـfor

الدوال

البدء مع flask

قيد الانشاء …