انتقال داده به URL توسط آرگومان ورودی


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

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

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

coreapp/urls.py

urlpatterns = [
    path('', views.homeFunc, name='Home'),
    path('project/<str:title>', views.projectDisplay, name='projectName'),
]

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

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

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

coreapp/views.py

def projectDisplay(request, title):

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

 

حال در مرورگر، اگر آدرس project/Django-Tutorial-Project را وارد کنیم، جنگو URL مربوطه که همان project می‌­باشد را به­ عنوان درخواست (request) و آرگومان ورودی همراه با آن (Django-Tutorial-Project) را به­ عنوان آرگومان ورودی title از سمت مرورگر دریافت کرده و view مربوط به این درخواست، با عنوان projectDisplay را از الگوی URL آن فراخوانی کرده و در نهایت view تعریف شده، دستور ارسال عبارتی پیش‌فرض به ­همراه عنوان پروژه  را به­ عنوان پاسخ (response) به مرورگر، صادر کرده و نهایتا در صفحه نمایش مرورگر تصویر ذیل را مشاهده خواهد شد.

Django Tutorial | Send Variable to Display