السلام عليكم النهاردة ان شاْ الله هنتكلم عن ال class based views في دجانجو , تعالي الاول نفهم الفكرة

قولنا قبل كدة ان django عبارة عن MVT Framewrok بمعني انه بيتكون من 3 حاجات ال Model , View , Template وانته كمبرمج دجانجو لازم تبقي عارف كل واحدة منهم بتعمل ايه بالظبط وتعرف ازاي تعرف تتعامل معاها وتخصصها , قولنا ال Model هي اللي مسؤله عن الداتا بيز , يعني اقدر اصمم بيها الداتا بيز بالعلاقات بتاعتها واقدر ارجع بيها معلومات من الداتابيز , وقولنا ان ال template هي اللي بتربط الداتا اللي راجعه من ال model في التصميم بتاع ال front-end بتاعي والعقل اللي بيدير العمليه دي هوه ال View

ال View اللي بيبقي فيها ال logic بالاضافه لانها هي اللي بتتعامل مع كل الاجزاء دي , هي اللي مربوطة ب ال model , template , url , forms وكل الاجزاء

في الاصدارات الاولي من django كانت ال view دي عبارة عن داله function عادية خالص زي اي function انته بتعملها في بايثون وبتاخد مني دايما ال request اللي جايلي ال url وزي ما قولت بتكتب انته كل ال logic بتاعك , وبعدين ظهرت المفاجاة في اصدار django 1.7 ظهر طريقه جديدة لكتابه ال view , الموضوع مبقاش FUNCTIONS بس بقي ممكن اكتبها عن طريق class

هل الموضوع كدة وبس !! لا طبعا ال class based views اتبنت علي الحاجات اللي انته بتعملها ب استمرار وبقوة ال inheritance وحاجة اسمها ال mixins هنتكلم عنها بعدين ودة صنع من ال class based views اداة قويه جدا في Django وقادة انها تنجز شغل كنت بتعملها ب ال function based views في ساعه في 3 دقائق بس ال class based views

الا ان ال class based views قوية الا ان اوقات كتيير هيبقي الكود بتاعها معقد جدا وهيبقي من الافضل تعمله ب ال function based views ودة عمل جدل بين مبرمجيين دجانجو هل استخدم ال cbv ولا ال fbv !!!

السؤال دة ملوش اجابه لحد الان لكن الفكرة ان كل واحدة فيهم ليها مميزات وعليها انته هتختار تستخدم ال cbv ولا ال fbv

ال fbv سهله جدا في كتابتها وقراتها وسهل انك تعمل extend فيها ولكن هتكتب كود كتيير بعكس ال cbv هتكتب كود قليل علشان اغلب اللي انته محتاجه موجود اصلا فيها ولكن لما الكود بيبقي فيه logic كتيير هتبقي معقدة شويه واظن ان الحل الافضل لاستخدامهم هو انك تجمع بينهم عادي جدا جدا , بمعني ان ال view اللي تحسها ب ال class based views اسهل اعملها بيها غير كدة اشتغل ب ال function based views

كل اللي فات دة كان كلام نظري عن ال function based views وال class based views ولكن لسه محتاجيين نعرف مكونات ال cbv وازاي نتعامل معاها ونتسفيد من مميزاتها ودة اللي هنشوفة في المقالات الجايه ان شاء الله

بالتوفيق

#محمود_احمد