Django Academy · درس

ModelViewSet وأجهزة التوجيه

إنشاء مسارات CRUD تلقائيًا

الدرس 1 من 413 خطوة

ModelViewSet وأجهزة التوجيه درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.

مشكلة تكرار CRUD

تعني كتابة عمليات العرض والإنشاء والاسترجاع والتحديث والحذف يدويًا قدرًا كبيرًا من الشيفرة المتشابهة تقريبًا. تجمع ViewSet كل ذلك في فئة واحدة مرتبة.

تعرّفوا إلى ModelViewSet

توفر لكم ModelViewSet عمليات CRUD الكاملة لنموذج مع قدر ضئيل جدًا من الشيفرة. حدّدوا لها queryset وserializer، وستتولى هي الباقي.

from rest_framework import viewsets

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

سمتان تنجزان المهمة

يحمل هذان السطران كل ما تحتاج إليه الفئة. يحدد queryset الصفوف المعنية، بينما يحدد serializer_class كيفية تحويلها إلى JSON. 📦

الإجراءات المتاحة تلقائيًا

يوفر ModelViewSet خمسة إجراءات: list وcreate وretrieve وupdate وpartial_update وdestroy. ولم تكتبوا أيًا منها يدويًا.

سبب وجود أجهزة التوجيه

تجمع ViewSet الإجراءات، لكن لا تزال عناوين URL بحاجة إلى الربط. يقرأ router الـ ViewSet ويولّد جميع أنماط عناوين URL تلقائيًا.

التسجيل باستخدام DefaultRouter

أنشئوا DefaultRouter، وسجّلوا ViewSet تحت بادئة، وسيبني لكم مجموعة عناوين URL الكاملة.

from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'books', BookViewSet)

إضافة عناوين URL الخاصة بالموجّه

يعرض الموجّه router.urls، وهي قائمة جاهزة من الأنماط. أضيفوها إلى urlpatterns وستصبح نقاط النهاية متاحة فورًا.

urlpatterns = [
    path('api/', include(router.urls)),
]

عناوين URL التي أنشأتموها للتو

يمنحكم تسجيل ViewSet واحد عنوان /books/ لعمليتي العرض والإنشاء، بالإضافة إلى /books/{id}/ للاسترجاع والتحديث والحذف. 🚀

تطابق أفعال HTTP الإجراءات

يطابق الموجّه الأفعال مع الإجراءات: يعرض GET القائمة، وينشئ POST موردًا، ويسترجع GET مع معرّف المورد، ويحدّث PUT أو PATCH، ويحذف DELETE. سلوكيات ستة في ViewSet واحد.

DefaultRouter مقارنةً بـ SimpleRouter

يضيف DefaultRouter عرضًا مفيدًا لجذر API يسرد نقاط النهاية. أما SimpleRouter فيتجاوزه عندما تريدون مجموعة عناوين URL أكثر اختصارًا.

إضافة إجراء مخصص

هل تحتاجون إلى نقطة نهاية إضافية؟ تضيف أداة التزيين @action مسارًا مخصصًا إلى ViewSet دون مغادرة الفئة.

from rest_framework.decorators import action

@action(detail=True, methods=['post'])
def favorite(self, request, pk=None):
    ...

تحقق سريع

حان وقت ترسيخ كيفية تكامل ViewSets مع أجهزة التوجيه.

مراجعة: CRUD في بضعة أسطر

تعلمتم أن الجمع بين ModelViewSet وموجّه يحوّل فئتين قصيرتين إلى API كاملة لعمليات CRUD، مع توليد عناوين URL مرتبة تلقائيًا. أحسنتم! 🎉

البدء مجانًا

تعلم Python مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «ModelViewSet وأجهزة التوجيه» مجاني؟

نعم — نص درس «ModelViewSet وأجهزة التوجيه» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.

ماذا ستتعلم في «ModelViewSet وأجهزة التوجيه»؟

إنشاء مسارات CRUD تلقائيًا تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟

لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «ModelViewSet وأجهزة التوجيه»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟

نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ModelViewSet وأجهزة التوجيه
  2. الأذونات وتحديد معدل الطلبات
  3. المصادقة باستخدام Token وJWT
  4. التصفية والبحث وتقسيم الصفحات
← العودة إلى Django Academy