تطوير الويب 28/11/2021
Desc Text.
مقدمة
حديثنا اليوم عن تطوير الويب أو الـbackend development
، سنختصر الهدف من تطوير الويب في ثلاث نقاط:
- المحتوى الديناميكي
- مشاركة الزوار في انشاء المحتوى
- التحكم في الوصول
ولفهم كل واحدة منهم يجب علينا معرفة كيف كانت تتم الأمور.
دعونا نفترض أن المواقع صفحات HTML
ثابتة كالماضي.
سيكون معنا سيرفر بالاسم facebook.com
فيه الصفحة الرئيسية index.html
وكذلك مجلد profiles
ولكل مستخدم نحتاج صفحة html
تمثل صفحته الشخصية، على سبيل المثال سيكون لدينا الصفحات:
wusaby.rush.html
mohammed.html
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
كالآتي:
- تبحث في مستودع البيانات عن
wusaby.rush
. - في حال وجدت بيانات له تنشئ نسخة من الملف
profile.html
ببيانات المستخدم. - ترسل الصفحة المُولدة للمستخدم
العملية تشبه انشاء شهادات حضور هذه الدورة، حيث لدينا ملف بيانات، وبرمجية تولد الشهادات باستخدام قالب
مشاركة الزوار في انشاء المحتوى
بما أنه صار لدينا برمجية تتحكم في الاستجابة للطلبات، فما المانع من وضع صفحة تسمح للمستخدمين بانشاء محتواهم، ترسل هذه الصفحة البيانات للبرمجية، والبرمجية بدورها تخزن البيانات في مستودع بيانات الموقع.
التحكم في الوصول
صار لدينا الان برمجية تولد الصفحات بناءا على مستودع بيانات، وأيضا قادرة على أخذ البيانات من الزوار وتخزينها في نفس المستودع، مع مجهود بسيط مع جمل if else
يسمح لنا بتحديد الصلاحيات، من يمكنه الوصول للموقع، بل وأي بيانات له القدرة على الوصول إليها.
العمليات السابقة جميعها هي ما سمح بظهور مصطلح الـweb2
حيث يمكن للمستخدمين إنشاء محتوى الموقع، خلاف الweb1
حيث لا يملك أحد القدرة على انشاء المحتوى عدا مالك الموقع.
لغات الوب
يمكنك تطوير الوب حتى بلغة c++
، لكن البديهي أنك ستلجأ للغات أسهل في التعامل مع الوب مثل: PHP
، و Python
وnodeJS
- nodeJS
و deno
هي مفسرات للغة javascript
توفر لها الدوال والوظائف التي تسمح بالاستجابة للشبكة ونظام الملفات وقواعد البيانات …
وحتى هذه اللغات لديها إطارات عمل تقلل من الوقت والتكلفة، وغالبا ستختار:
- PHP -> laravel
- Python -> django
- nodeJS -> express
بماذا نبدأ ؟
في بدايتك مع الوب، تحتاج لفهم كيف يعمل الوب، الرسائل كـ200، أو 404، أو 304، كذلك الـcookies وغيرها.
بعد استيعابك لكل هذه المصطلحات، ستصبح فعلا مطور وب وستكون اللغات أو إطارات العمل مجرد أداوات ستستخدم كل واحدة منها بما يناسبك. هنا سنبدأ مع flask
وهو إطار عمل بسيط للبايثون، يمكننا التعلم عليه بسهولة، وكذلك استخدامه في البيئات الإنتاجية.
في حال كانت بايثون مثبتة لديك مسبقا فيمكن تثبيت flask
من سطر الأوامر
pip install flask
التعرف على بايثون
بالتأكيد لن نبدأ في flask
بدون معرفة هياكل لغة بايثون وطريقة الكتابة بها، الأمثلة التالية تقارنها بلغة javascript
والتي تعرفت عليها في المحاضرة الثانية.
التحكم الشرطي
الدوران بـwhile
الدوران بـfor
الدوال
البدء مع flask
قيد الانشاء …