واجهات العرض وعناوين 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المشروعات والتطبيقات
- النماذج وعمليات الترحيل
- واجهات العرض وعناوين URL
- لوحة إدارة Django