0Pricing
Python Academy · درس

واجهات العرض وعناوين URL

وجّه الطلبات إلى واجهات العرض

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

ما هو العرض؟

العرض في Django هو دالة (أو فئة) تستقبل طلب ويب وتعيد استجابة ويب. وتحتوي العروض على منطق صفحاتكم، وتوجد في views.py الخاص بالتطبيق.

from django.http import HttpResponse

def home(request):
    return HttpResponse('Hello, world!')
print('A view takes request, returns response')

وسيط request

يستقبل كل عرض كائن request الذي يحتوي على تفاصيل الطلب الوارد: الطريقة، وبيانات GET/POST، والمستخدم، وغير ذلك.

from django.http import HttpResponse

def info(request):
    return HttpResponse('Method: ' + request.method)
print('request carries the incoming data')

أنماط عناوين URL

يربط ملف urls.py في التطبيق مسارات عناوين URL بالعروض باستخدام قائمة تُسمى urlpatterns ودالة path().

# blog/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home),
]
print('path maps a URL to a view')

تسمية عناوين URL

امنحوا النمط name حتى تتمكنوا من الإشارة إليه في أماكن أخرى من دون كتابة المسار مباشرةً.

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]
print("name='home' lets you reference it later")

معاملات عناوين URL

التقطوا أجزاءً من عنوان URL باستخدام محوّلات مثل <int:post_id>. وتُمرَّر القيمة الملتقطة إلى العرض.

from django.urls import path
from . import views

urlpatterns = [
    path('post/<int:post_id>/', views.detail, name='detail'),
]
print('post/5/ -> detail(request, post_id=5)')

قراءة المعامل

تصل القيمة الملتقطة إلى العرض على شكل وسيط مسمى يطابق اسم المحوّل.

from django.http import HttpResponse

def detail(request, post_id):
    return HttpResponse('Post ' + str(post_id))
print('View receives post_id')

ضم عناوين URL الخاصة بالتطبيق

يضم ملف urls.py الجذري في المشروع عناوين URL الخاصة بكل تطبيق باستخدام include()، مما يحافظ على معيارية التوجيه.

# mysite/urls.py
from django.urls import path, include

urlpatterns = [
    path('blog/', include('blog.urls')),
]
print('include() wires up app urls')

عرض القوالب

يجمع الاختصار render() قالبًا مع قاموس سياق ويعيد استجابة HttpResponse.

from django.shortcuts import render

def home(request):
    return render(request, 'home.html', {'name': 'Alice'})
print('render combines template + context')

أدوات مساعدة لـ 404

يسترجع get_object_or_404() كائنًا أو يرفع استثناء 404 إذا لم يكن موجودًا، وهو نمط شائع وآمن.

from django.shortcuts import get_object_or_404, render
from .models import Post

def detail(request, post_id):
    post = get_object_or_404(Post, id=post_id)
    return render(request, 'detail.html', {'post': post})
print('get_object_or_404 handles missing data')

عكس عناوين URL

في Python، ينشئ reverse('detail', args=[5]) عنوان URL انطلاقًا من اسم نمط. وفي القوالب، تنفذ علامة {% url %} الأمر نفسه.

from django.urls import reverse
# reverse('detail', args=[5]) -> '/blog/post/5/'
# In a template: {% url 'detail' post.id %}
print('reverse builds URLs from names')

العروض المعتمدة على الفئات

يوفر Django أيضًا عروضًا معتمدة على الفئات مثل ListView وDetailView، والتي تتولى الأنماط الشائعة بقدر أقل من الشيفرة.

from django.views.generic import ListView
from .models import Post

class PostList(ListView):
    model = Post
print('ListView lists objects automatically')

اختبار سريع

اختبروا مدى معرفتكم بالعروض وعناوين URL.

مراجعة

وجّهتم الطلبات إلى العروض.

  • تأخذ العروض request وتعيد استجابة
  • تربط urlpatterns وpath() عناوين URL بالعروض، مع إمكانية تحديد name
  • تلتقط محوّلات مثل <int:id> أجزاءً من عناوين URL
  • يوصل include() عناوين URL الخاصة بالتطبيق؛ كما أن render() وget_object_or_404() اختصاران مفيدان

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

هل درس «واجهات العرض وعناوين URL» مجاني؟

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

ماذا ستتعلم في «واجهات العرض وعناوين URL»؟

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

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

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

كم من الوقت يستغرق درس «واجهات العرض وعناوين URL»؟

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

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

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

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

  1. المشروعات والتطبيقات
  2. النماذج وعمليات الترحيل
  3. واجهات العرض وعناوين URL
  4. لوحة إدارة Django
← العودة إلى Python Academy