كيفية استخدام دوال Shortcut في Django

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

تتضمن بعض الفوائد الرئيسية لاستخدام دوال Shortcut ما يلي:

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

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

تحسين أداء التطبيق: تم تصميم دوال Shortcut لتكون فعالة ومحسنة للأداء، مما يمكن أن يساعد في تحسين الأداء العام لتطبيق الويب.

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

البدء باستخدام دوال Shortcut

يمكنك البدء في استخدام دوال Shortcut عن طريق استيرادها من وحدة django.shortcuts. على سبيل المثال، لاستخدام دالة render، يمكنك استيرادها على النحو التالي:

from django.shortcuts import render

وبدلاً من ذلك، يمكنك استيراد جميع دوال Shortcut مرة واحدة باستخدام عامل * :

from django.shortcuts import *

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

إستخدام دالة render

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

لاستخدام دالة render، ستحتاج إلى استيرادها من وحدة django.shortcuts ثم استدعائها باستخدام الوسائط التالية:

  • request : كائن الطلب الذي يمثل طلب HTTP الوارد.
  • template_name : اسم القالب الذي تريد عرضه.
  • context (اختياري): قاموس يحتوي على بيانات السياق التي تريد تمريرها إلى القالب.

فيما يلي مثال لكيفية استخدام render في ودالة العرض:

from django.shortcuts import render

def my_view(request):
    context = {'key': 'value'}
    return render(request, 'my_template.html', context)

ستقوم دالة العرض بعرض قالب my_template.html مع بيانات السياق المحددة وإرجاع HTML الناتج إلى العميل.

بالإضافة إلى عرض القوالب، تتيح لك دالة render أيضًا تحديد نوع محتوى الاستجابة ورؤوس HTTP الأخرى. على سبيل المثال، يمكنك استخدام وسيطة content_type لتحديد نوع محتوى الاستجابة، ووسيطة الحالة لتحديد رمز حالة HTTP للاستجابة.

return render(request, 'my_template.html', context, content_type='text/html', status=200)

سيؤدي هذا إلى عرض القالب بتنسيق HTML وتعيين رمز حالة HTTP إلى 200.

استخدام دالة redirect

 redirect هي دالة من دوال shortcut التي تسمح لك بإعادة توجيه المستخدم إلى عنوان URL مختلف. تكون هذه الدالة مفيدة بشكل خاص عندما تريد إعادة توجيه المستخدم إلى صفحة أخرى بعد إكمال إرسال النموذج أو أي إجراء آخر.

لاستخدام دالة redirect، ستحتاج إلى استيرادها من وحدة django.shortcuts ثم استدعائها باستخدام عنوان URL الذي تريد إعادة توجيه المستخدم إليه كوسيطة. على سبيل المثال:

from django.shortcuts import redirect

def my_view(request):
    return redirect('/home/')

ستعمل دالة العرض على إعادة توجيه المستخدم إلى عنوان URL /home/.

بالإضافة إلى إعادة التوجيه إلى عنوان URL محدد، يمكنك أيضًا إعادة التوجيه إلى نمط عنوان URL مسمى باستخدام دالة reverse من وحدة django.urls.

from django.shortcuts import redirect
from django.urls import reverse

def my_view(request):
    return redirect(reverse('home'))

سيؤدي هذا إلى إعادة توجيه المستخدم إلى عنوان URL المطابق لنمط عنوان URL الرئيسي.

يمكنك أيضًا تمرير وسائط إضافية إلى دالة redirect لتحديد رمز حالة HTTP لاستجابة إعادة التوجيه.

return redirect('/home/', permanent=True)

سيؤدي هذا إلى إعادة توجيه المستخدم إلى عنوان URL /home/ برمز الحالة 301 (تم النقل نهائيًا).

استخدام دالة get_object_or_404

get_object_or_404 هي دالة من دوال shortcut التي تسمح لك باسترداد كائن معين من قاعدة البيانات باستخدام نموذج محدد ومعلمات استعلام، وإرجاع استجابة 404 (لم يتم العثور عليه) إذا كان الكائن غير موجود. يمكن أن تكون هذه الدالة مفيدة بشكل خاص عندما تريد استرداد كائن معين من قاعدة البيانات وعرضه للمستخدم، ولكنك تريد إرجاع استجابة 404 إذا كان الكائن غير موجود.

لاستخدام دالة get_object_or_404، ستحتاج إلى استيرادها من وحدة django.shortcuts ثم استدعائها باستخدام الوسائط التالية:

  • model: فئة النموذج التي تمثل الكائن الذي تريد استرداده.
  • **kwargs: معلمات الاستعلام التي تريد استخدامها لتصفية الكائنات.

على سبيل المثال، لاسترداد كائن BlogPost محدد بالمعرف 1، يمكنك استخدام الكود التالي:

from django.shortcuts import get_object_or_404

def my_view(request):
    post = get_object_or_404(BlogPost, pk=1)
    return render(request, 'blog_post.html', {'post': post})

ستقوم دالة العرض باسترداد كائن BlogPost بالمعرف 1 من قاعدة البيانات وتقديمه للمستخدم. إذا كان كائن BlogPost غير موجود، فسيُرجع استجابة 404 (لم يتم العثور عليه).

يمكنك أيضًا استخدام دالة get_object_or_404 مع معلمات الاستعلام الأخرى لتصفية الكائنات. على سبيل المثال، لاسترداد كائن BlogPost بعنوان “My Post”، يمكنك استخدام الكود التالي:

post = get_object_or_404(BlogPost, title='My Post')

سيؤدي هذا إلى استرداد كائن BlogPost بعنوان “My Post” من قاعدة البيانات، أو إرجاع استجابة 404 (لم يتم العثور عليه) إذا كان الكائن غير موجود.

استخدام دالة get_list_or_404

get_list_or_404 هي دالة من دوال  shortcut التي تسمح لك باسترداد قائمة الكائنات من قاعدة البيانات باستخدام نموذج معين ومعلمات الاستعلام، وإرجاع استجابة 404 (لم يتم العثور عليه) إذا كانت القائمة فارغة. يمكن أن تكون هذه الدالة مفيدة بشكل خاص عندما تريد استرداد قائمة الكائنات من قاعدة البيانات وعرضها للمستخدم، ولكنك تريد إرجاع استجابة 404 إذا كانت القائمة فارغة.

لاستخدام دالة  get_list_or_404، ستحتاج إلى استيرادها من وحدة django.shortcuts ثم استدعائها باستخدام الوسائط التالية:

  • model: فئة النموذج التي تمثل الكائن الذي تريد استرداده.
  • **kwargs: معلمات الاستعلام التي تريد استخدامها لتصفية الكائنات.

على سبيل المثال، لاسترداد قائمة بجميع كائنات BlogPost المنشورة في عام 2021، يمكنك استخدام الكود التالي:

from django.shortcuts import get_list_or_404

def my_view(request):
    posts = get_list_or_404(BlogPost, published_at__year=2021)
    return render(request, 'blog_posts.html', {'posts': posts})

ستقوم دالة العرض باسترداد قائمة بجميع كائنات BlogPost المنشورة في عام 2021 من قاعدة البيانات وتقديمها للمستخدم. إذا لم يتم نشر أي كائنات BlogPost في عام 2021، فستعرض استجابة 404 (لم يتم العثور عليها).


اكتشاف المزيد من بايثون العربي

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading