انتقال داده توسط URL


پیش از ورود به بحث اصلی، لازم است با نحوه انتقال داده‌ها به رابط کاربری آشنا شویم. فرض کنید صفحه‌ای با آدرس project/ وجود داشته باشد که عنوان یک پروژه خاص را نمایش دهد — به‌طوری‌که این عنوان از طریق داده‌های داینامیکی (مانند پارامترهای URL یا وضعیت برنامه) به رابط کاربری ارسال و سپس نمایش داده می‌شود.

 برای دسترسی به این مقصود می‌­بایست فرآیند زیر، مرحله به مرحله طی شود.

-        ابتدا در فایل URL اپ،  الگوی URL مربوطه مب‌بایست تعربف گردد و در فرآیند تعریف باید به جنگو اعلام شود که این مسیر آدرس، هنگام درخواست، نیاز به آرگومان ورودی خواهند داشت:

coreapp/urls.py

urlpatterns = [
    path('', views.Home, name='Home'),
    path('project-name/<str:title>', views.ProjectInfo, name='ProjectTitle'),
]

در این­جا، به هنگام تعریف الگوی URL، به جنگو اعلام کردیم که آدرس book-name/ به هنگام درخواست می­‌بایست یک آرگومان وروردی با عنوان title از نوع متن یا عبارت – str به همراه خود داشته باشد.

⚠️ درصورت ارسال نشدن آرگومان ورودی به هنگام درخواست URL با پیغام خطا مواجه خواهیم شد.

سپس  در تابع view مربوطه، می‌­بایست نحوه تعامل با آرگومان ورودی را تعریف کنیم:

coreapp/views.py

def ProjectInfo(request, title):

  return HttpResponse(f'Project Title is: 🡺 {title}')

حال اگر در مرورگر آدرس project-name/Django-Tutorial-Project را وارد کنیم، جنگو این درخواست را بر اساس الگوی تعریف‌شده در فایل urls.py تطبیق می‌دهد. در این الگو، بخش project-name ثابت است و هر مقداری که پس از آن آمده باشد (در اینجا Django-Tutorial-Project) به‌عنوان پارامتر title به تابع ProjectInfo() ارسال می‌شود. این ویو سپس یک پاسخ ساده شامل عبارت «Project Title is: 🡺 Django-Tutorial-Project» را تولید کرده و به مرورگر بازمی‌گرداند؛ بنابراین، کاربر دقیقاً همین متن را در صفحه مرورگر خواهد دید.

Django Tutorial | Send Variable to Display