انتقال داده به 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
) به مرورگر، صادر کرده و نهایتا در صفحه نمایش مرورگر تصویر ذیل را مشاهده خواهد شد.