تعرف على كيفية إنشاء تطبيق مدير المهام باستخدام مبادئ CRUD ووجهات النظر المستندة إلى الفصل في Django.

تتمثل إحدى الميزات الرئيسية لـ Django في دعمها المدمج لإنشاء مشاريع فوق عمليات CRUD (إنشاء ، قراءة ، تحديث ، حذف). بينما توفر عروض Django القائمة على الفصول طريقة سريعة وسهلة ومرنة لبناء تطبيقات الويب ، لا يزال العديد من المطورين يستخدمون العروض القائمة على الوظائف.

تقدم طرق العرض المستندة إلى الفئة العديد من المزايا على طرق العرض القائمة على الوظائف ، بما في ذلك الوراثة ، وهيكلة الكود ، وقابلية إعادة استخدام الكود ، والمزيد. بينما قد يبدو تنفيذ العروض المستندة إلى الفصل معقدًا بعض الشيء ، سيساعدك هذا الدليل في فهم المفهوم من خلال إنشاء تطبيق مدير المهام وتقديم إرشادات خطوة بخطوة.

ما هي وجهات النظر المستندة إلى الفصل في Django؟

في Django ، الآراء وظائف بايثون التي تأخذ طلب ويب وتعيد استجابة الويب. تعد العروض المبنية على الفئة (CBVs) طريقة بديلة لتحديد طرق العرض في Django باستخدام فئات Python بدلاً من الوظائف.

تتمتع CBV بالعديد من المزايا ، مثل تنظيم أفضل للكود ، وإعادة استخدام أسهل للكود ، والقدرة على استخدام الوراثة لإنشاء أشكال مختلفة من طرق العرض الحالية. توفر CBVs أيضًا طرقًا مضمنة مثل

instagram viewer
يحصل() و بريد() الأساليب التي يمكنك الكتابة فوقها للسلوكيات المخصصة.

الكود المستخدم في هذه المقالة متوفر في هذا مستودع جيثب.

العروض المستندة إلى الفصل متوفرة في Django

يوفر Django بعض CBV المدمجة لحالات الاستخدام الشائعة ، مثل عرض قوائم الكائنات أو إنشاء قوائم جديدة. بعض هذه المركبات CBV المدمجة هي:

  1. عرض القائمة: يعرض هذا العرض قائمة بالكائنات التي تم استردادها من النموذج. على سبيل المثال ، الصفحة التي تسرد جميع المنشورات المتاحة في مدونة تستخدم ملف عرض القائمة.
  2. عرض التفاصيل: يعرض هذا العرض عرضًا تفصيليًا لكائن واحد تم استرداده من نموذج. يمكنك استخدام ملف عرض التفاصيل لعرض تفاصيل منشورات معينة في تطبيق مدونة.
  3. CreateView: تعرض طريقة العرض هذه نموذجًا لإنشاء كائن جديد وتتولى إرسال النموذج. على سبيل المثال ، في تطبيق مدير المهام ، ستستخدم طريقة العرض هذه لإنشاء مهام جديدة.
  4. DeleteView: تعرض طريقة العرض هذه صفحة تأكيد لحذف كائن وتعالج حذف الصفحة.
  5. UpdateView: يعرض هذا العرض نموذجًا لتحديث كائن موجود ويتعامل مع إرسال النموذج.

يوفر Django أيضًا وجهات نظر أخرى ، بما في ذلك TemplateView, إعادة توجيه، و FormView. يمكنك الرجوع إلى وثائق جانغو للحصول على معلومات مفصلة حول وجهات النظر على أساس الفصل.

أنشئ تطبيق مدير المهام باستخدام طرق عرض Django المستندة إلى كلاس

يتيح لك إنشاء تطبيق مثل تطبيق مدير المهام فهم كيفية تنفيذ عمليات CRUD باستخدام CBV. يحتوي مدير المهام على ميزات تسمح للمستخدمين بإنشاء المهام وتحديثها وحذفها وقراءتها. هذه الميزات تتماشى مع عمليات CRUD. ستساعدك الخطوات التالية في إنشاء تطبيق مدير المهام باستخدام Django CBVs.

قم بإعداد مشروع Django

لإنشاء تطبيق مدير المهام باستخدام Django ، يجب أن تبدأ باتباع الخطوات التالية:

  1. قم بتثبيت Django في ملف بيئة بايثون الافتراضية بهذا الأمر:
    نقطة تثبيت django
  2. قم بإنشاء مشروع Django. سيقوم الأمر التالي بإنشاء مشروع يسمى نقطة_المشروع.
    بدء مشروع django-admin project_core.
  3. قم بإنشاء تطبيق يسمى مدير المهام.
    python management.py startapp task_manager
  4. في الخاص بك settings.py أضف اسم التطبيق الخاص بك إلى INSTALLED_APPS قائمة.
    INSTALLED_APPS = [
    'مدير المهام',
    ]
  5. افتح ال urls.py ملف في دليل المشروع الخاص بك وتهيئة عناوين URL الخاصة بك مدير المهام برنامج:
    من django.urls يستورد المسار ، وتشمل

    أنماط عنوان url = [
    طريق(''، يشمل("task_manager.urls")),
    ]

قم بإنشاء نموذج لتطبيق مدير المهام الخاص بك

في دليل التطبيق الخاص بك (أو مدير المهام المجلد) ، افتح ملف نماذج ملف وإنشاء نموذج لتطبيق مدير المهام الخاص بك. إليك نموذج نموذج يمكنك استخدامه:

من django.db يستورد عارضات ازياء

فصلمهمة(عارضات ازياء. نموذج):
العنوان = النماذج. CharField (أقصى طول =200)
الوصف = النماذج. حقل النص()
مكتمل = نماذج. BooleanField (افتراضي =خطأ شنيع)
Creat_at = النماذج. DateTimeField (auto_now_add =حقيقي)

قم بترحيل نموذجك باستخدام هذا الأمر:

python management.py makemigrations && python management.py الهجرة

قم بإنشاء نموذج Django لتطبيقك

يجب أن يكون لديك نموذج للتعامل يخلق و تحديث عمليات. في دليل التطبيق الخاص بك ، قم بإنشاء ملف يسمى Forms.py. هذا مثال:

من دجانغو يستورد نماذج
من .عارضات ازياء يستورد مهمة

فصلنموذج المهمة(نماذج. نموذج النموذج):
فصلميتا:
نموذج = مهمة
الحقول = ['عنوان', 'وصف', 'مكتمل']

الحاجيات = {
'عنوان': نماذج. إدخال النص (Attrs = {'فصل': "شكل السيطرة",}),
'وصف': نماذج. منطقة النص (attrs = {'فصل': "شكل السيطرة",}),
'مكتمل': نماذج. CheckboxInput (Attrs = {'فصل': "إدخال التحقق من النموذج"}),
}

يحتوي الكود أعلاه على فئة تسمى نموذج المهمة الذي يحدد الحقول وعناصر واجهة المستخدم الخاصة بالنموذج. كما تحدد النموذج المراد استخدامه.

إنشاء طرق عرض Django لكل عملية CRUD

يتطلب تطبيق CRUD الأساسي مع CBV أربع طرق عرض على الأقل للتعامل مع جميع العمليات بشكل فعال. ستوضح لك الخطوات القليلة التالية كيفية إنشائها.

استيراد الوحدات والحزم الضرورية

افتح views.py ملف وقم بإجراء عمليات الاستيراد التالية:

من django.views.generic يستورد ListView ، DetailView ، CreateView ، UpdateView ، DeleteView
من django.urls يستورد عكسي كسول
من .عارضات ازياء يستورد مهمة
من .نماذج يستورد نموذج المهمة

يستورد الرمز أعلاه خمسة CBVs. كما أنها تستورد عكسي كسول لإعادة توجيه المستخدم إلى عنوان URL محدد بعد إرسال النموذج. أخيرًا ، تقوم باستيراد ملف مهمة النموذج و نموذج المهمة تم إنشاؤها في وقت سابق.

إنشاء طريقة عرض لسرد كائنات النموذج

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

فصلTaskListView(عرض القائمة):
نموذج = مهمة
template_name = "task_manager / task_list.html"
Context_object_name = 'مهام'

يحدد العرض أعلاه ثلاث سمات هي:

  1. نموذج: تحدد هذه السمة النموذج الذي يجب استخدامه لهذا العرض المحدد.
  2. اسم القالب: تخبر هذه السمة Django بالنموذج الذي سيتم عرضه على المتصفح.
  3. اسم الكائن: تحدد هذه السمة الاسم الذي يتيح للقالب الوصول إلى قائمة الكائنات في النموذج.

ستحتوي معظم CBV على هذه السمات الثلاث.

قم بإنشاء طريقة عرض للتعامل مع تفاصيل المهمة

يجب أن تحتوي كل مهمة يقوم المستخدم بإنشائها على صفحة تعرض تفاصيلها. CBV المثالي للتعامل مع هذا هو التفاصيل. إليك مثال بسيط:

فصلعرض تفاصيل المهام(عرض التفاصيل):
نموذج = مهمة
template_name = "Task_manager / task_detail.html"

قم بإنشاء طريقة عرض لإنشاء المهام

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

فصلعرض TaskCreateView(CreateView):
نموذج = مهمة
form_class = نموذج المهام
template_name = "Task_manager / task_form.html"
Success_url = reverse_lazy ('قائمة المهام')

يقدم الكود أعلاه سمتين جديدتين: شكل_فئة و نجاح_ URL.

ال شكل_فئة تخبر السمة طريقة العرض عن فئة النموذج التي سيتم عرضها واستخدامها لعملياتها.

ال نجاح_ URL يحدد كيفية إعادة توجيه المستخدم بعد إرسال النموذج. يستخدم عكسي كسول الوظيفة التي تأخذ اسم مسار URL.

إنشاء طريقة عرض لتحرير المهام

للسماح للمستخدمين بتعديل مهامهم أو تحديثها ، يجب عليك إنشاء عرض يبدو كالتالي:

فصلTaskUpdateView(UpdateView):
نموذج = مهمة
form_class = نموذج المهام
template_name = "Task_manager / task_form.html"
Success_url = reverse_lazy ('قائمة المهام')

العرض أعلاه مشابه لـ عرض TaskCreateView تم إنشاؤها في وقت سابق. الاختلاف الوحيد هو استخدام UpdateView.

قم بإنشاء عرض لمعالجة عمليات الحذف

للسماح للمستخدمين بحذف المهام وقتما يريدون ، يجب عليك استخدام ملحق DeleteView CBV. هذا مثال:

فصلTaskDeleteView(حذف العرض):
نموذج = مهمة
template_name = "Task_manager / task_confirm_delete.html"
Success_url = reverse_lazy ('قائمة المهام')

هيئ عناوين URL لتطبيقك

في دليل التطبيق الخاص بك ، قم بإنشاء ملف urls.py ملف وتكوين أنماط عنوان URL الخاصة بك مثل هذا:

من django.urls يستورد طريق
من .الآراء يستورد TaskListView ، TaskDetailView ، TaskCreateView ، TaskUpdateView ، TaskDeleteView

أنماط عنوان url =
طريق(''، TaskListView.as_view () ، الاسم ='قائمة المهام'),
طريق('يخلق/'، TaskCreateView.as_view () ، الاسم ="مهمة_إنشاء"),
طريق('مهام//'، TaskDetailView.as_view () ، الاسم ="تفاصيل_المهمة"),
طريق('مهام//update/'، TaskUpdateView.as_view () ، الاسم ="مهمة_تحديث"),
طريق('مهام//delete/'، TaskDeleteView.as_view () ، الاسم ="مهمة_حذف"),
]

تتشابه أنماط عنوان URL أعلاه مع عناوين URL التي تم إنشاؤها باستخدام طرق عرض تستند إلى الوظائف. الفرق هو as_view () وظيفة ملحقة بنهاية كل اسم عرض.

أنت تستطيع استخدم روابط Django لإنشاء عناوين URL بدلاً من المفتاح الأساسي المستخدم أعلاه.

إنشاء قوالب لطرق العرض الخاصة بك

يشير السماح للمستخدمين بتنفيذ الإجراءات المحددة في طرق العرض أعلاه إلى توفير واجهة لهم للتفاعل معها. من طرق العرض التي تم إنشاؤها مسبقًا ، يجب أن يحتوي تطبيق مدير المهام على أربع واجهات مستخدم.

في دليل التطبيق الخاص بك ، قم بإنشاء أربعة قوالب HTML. يجب عليك أيضًا إنشاء ملفات base.html ملف. أنت تستطيع صمم قوالب Django باستخدام Bootstrap لتوفير الوقت.

قالب قائمة المهام

يجب أن يتضمن هذا القالب رمزًا يسرد جميع المهام في النموذج. مثال هيكلي للرمز هو هذا:

{٪ يمتد 'base.html'٪}

{٪ حظر المحتوى٪}
<مركز>
<h1>المهام الخاصة بكh1>
<أhref="{٪ url 'task_create'٪}">إضافة مهمةأ>
{٪ للمهمة في المهام٪}
<شعبة>
<شعبة>
<h5>{{Task.title}}h5>
<ص>{{task.description | truncatechars: 50}}ص>
<ص>
<قوي>مكتمل:قوي>
{٪ if task.completed٪} نعم {٪ else٪} لا {٪ endif٪}
ص>
<أhref="{٪ url 'task_detail' task.pk٪}">
اقرأ أكثر
أ>
<أhref="{٪ url 'task_delete' task.pk٪}">
حذف المهمة
أ>
شعبة>
شعبة>
{٪ فارغ ٪}
<h3>لا توجد مهام حتى الآن.h3>
<أhref="{٪ url 'task_create'٪}">إضافة مهمةأ>
{٪ endfor٪}
مركز>
{٪ endblock٪}

مع بعض فئات Bootstrap ، يمكنك جعل صفحتك تبدو كما يلي:

قالب تفاصيل المهمة

يجب أن تعرض هذه الصفحة التفاصيل الكاملة لكل مهمة تم إنشاؤها. إليك نموذج نموذج يمكنك استخدامه:

{٪ يمتد 'base.html'٪}

{٪ حظر المحتوى٪}
<h1>{{Task.title}}h1>
<ص>{{ وصف المهمة }}ص>
<ص>مكتمل: {٪ if task.completed٪} نعم {٪ else٪} لا {٪ endif٪}ص>
<أhref="{٪ url 'task_update' task.pk٪}">تحرير المهمةأ>
<أhref="{٪ url 'task_delete' task.pk٪}">حذف المهمةأ>
{٪ endblock٪}

اعتمادًا على أسلوب التصميم الخاص بك ، يجب أن تبدو صفحتك كما يلي:

قالب نموذج المهمة

يجب أن يحتوي هذا القالب على نموذج يتيح للمستخدم إنشاء مهمة أو تحديثها.

{٪ يمتد 'base.html'٪}

{٪ حظر المحتوى٪}
<h1>إنشاء مهمةh1>
<استمارةطريقة="بريد">
{٪ csrf_token٪}
{{form.as_p}}
<زريكتب="يُقدِّم">يحفظزر>
استمارة>
{٪ endblock٪}

سيبدو النموذج كما يلي:

حذف قالب المهمة

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

{٪ يمتد 'base.html'٪}

{٪ حظر المحتوى٪}
<h1>تأكيد الحذفh1>
<ص>هل أنت متأكد أنك تريد حذف "{{object.title}}"؟ص>
<استمارةطريقة="بريد">
{٪ csrf_token٪}
<زريكتب="يُقدِّم">يمسحزر>
<أhref="{٪ url 'Task_list'٪}">يلغيأ>
استمارة>
{٪ endblock٪}

مع بعض Bootstrap ، يجب أن تبدو صفحتك كما يلي:

استخدم طرق العرض المستندة إلى الفصل لزيادة إنتاجيتك

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