/Django: Part(3)

Django: Part(3)

فى المثال الذى ناقشناه فى (المرة السابقة) كان الناتج (static) اى ان شكل  الصفحة  يظل كما هو لا تتغير حتى وان قمنا بعمل (request) ، وفى هذه المقالة سوف نشاهد مثال اخر ولكن فى هذه المرة الناتج يتغير كل مرة عند عمل (request) وهذا مايسمى بال (dynamic pages) .

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

فى الملف (views.py) والذى قمنا بعمله فى المرة السابقة قم باضافة الكود التالى:

شرح الكود المستخدم :

اولا قمنا باستدعاء الموديول (django.http) ومنه قمنا باستدعاء (HttpResponse) لنتمكن  من ارسال الرد للمستقبل ثم قمنا باستدعاء ال (datetime) لكى نتمكن من الحصول على التوقيت الحالى من خلال السيرفر.

ثم  قمنا بتعريف دالة واعطيناها اسم (current_datetime) تقوم باستقبال ال (request) من اليوزر وتقوم بارجاع ( HttpResponse) يحتوى على (html) والذى يمثل شكل الصفحة التى يحصل عليها  المستخدم (فى المرة القادمة سوف نعلم  فى المرة القادمة بان هذه ليست الطريقة المثالية لعمل الصفحة  سوف نقوم ان شاء الله باستخدام  (Templates)  ولكن مايهمنا الان هو المتغير(now) قمنا باستخدامه فى الصفحة عن طريق خاصية (string formatting) الموجودة فى البايثون .

وفى النهاية يكون الشكل النهائى لملف (views.py) :

وكما تعلمنا فى المرة السابقة نقوم بربط الدالة عن طريق ملف (urls.py)

بعد ذلك قم بتشغيل السيرفر ، ثم قم بكتابة هذا الرابط فى المتصفح الخاص بك (http://127.0.0.1:8000/time/) ، لابد ان يظهر لك التوقيت الحالى .

Loose Coupling:

 

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

مثال :

لو اردنا تغيير الاسم الذى يقوم باستدعاء الدالة فى المثال السابق  باى اسم اخر ترغب فى استخدامه  فانك غير مضطر الى تعديل الكود نفسه ولكن كل ما عليك هو استبدال time

مثال اخر :

لو اردنا اضافة اسم اخر يقوم بتنفيذ نفس التطبيق

وسوف يظهر اهمية هذا المفهوم ايضا عند استخدامك لل templates

حين لا تقوم بادراج اى من رموز ال html فى ال views يكون من السهل التعديل فى شكل الصفحة بغض النظر عن الكود المستخدم

نتوقف عند ذلك الحد وفى المرة القادمة سوف نقوم بشرح ال templates ان شاء الله