মডিউল ৩.৪ : ইউআরএল ট্যাগ

আজকে আমরা একটা মজার জিনিস দেখবো url এর ব্যাপারে। কখনো কি ঠান্ডা মাথায় যে খেয়াল করছো আমরা যে রিকোয়েস্ট গুলা করি সব কিন্তু url এর মাধ্যমে। এখন আমরা শিখেছি যে এক পেজ থেকে আরেক পেজে যাওয়ার জন্যে url আমরা href এর মধ্যে ম্যানুয়ালি বসাই দিচ্ছিলাম। যেমন : /about/ এভাবে কিন্তু যদি এই url টা অনেক বড় হয় তখন এভাবে ম্যানুয়ালি ম্যানেজ করা টা অনেক টাফ হবে আমাদের জন্যে।

তাই আজকে আমরা এটার শর্টকাট করার জন্যে url ট্যাগ সম্পর্কে জানবো এক্ষেত্রে অবশ্যই আমাদেরকে প্রত্যেকটা url এর নাম দিতে হবে যেটা আমরা আগে ইউজ করি নাই। নিচের কোড টা খেয়াল করে দেখো

from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.index, name = 'home'),
    path('about/', views.about, name = 'about'),
]

এবার এই url টা যদি আমরা আমাদের html এর anchor ট্যাগ এ ইউজ করতে চাই তাইলে আমাদেরকে url ট্যাগ ইউজ করতে হবে নিচের মত করে

<a href="{% url 'about' %}">About</a>

এখন এই url যতই কমপ্লেক্স হোক না কেনো কোনো সমস্যা নাই।

এখন যদি আমরা url এ আর্গুমেন্ট pass করতে চাই তাইলে সেটা কিভাবে করবো? সেটার জন্যে urls.py এ গিয়ে আমাদেরকে বলে দিতে হবে যে কি টাইপ ভ্যালু আমরা pass করতে চাই। ধরো আমরা int টাইপ ভ্যালু pass করতে চাই তাইলে নিচের মত করে pass করতে হবে

from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.index, name = 'home'),
    path('about/<int:id>', views.about, name = 'about'),
]

এখন views.py এ আমাদের কে অবশ্যই সেই url এ pass করা ভ্যারিয়েবল এর নাম টা দিতে হবে রিকোয়েস্ট এর পাশে কমা দিয়ে, এখন এই ভ্যালু আমরা চাইলে টেমপ্লেট এ pass করে দিয়ে দেখতে পারি যে কাজ হচ্ছে কিনা নিচের মত করে।

def about(request, id):
  return render(request, 'index.html', {'id' : id})
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link
      href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
      rel="stylesheet"
      integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN"
      crossorigin="anonymous"
    />
  </head>
  <body>
<a class="nav-link" href="{% url 'about' id %}">About</a>
  <h1> id =  {{id}}</h1>
    <script
      src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
      integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
      crossorigin="anonymous"
    ></script>
  </body>
</html>

এখন তোমার মনের কোয়েশ্চন আসতে পারে ভাইয়া এটা কেনো শিখলাম? একটা এক্সাম্পল দেই ধরো তুমি medium.com এ গেছো সেখানে একটা ব্লগ এ যখন তুমি ক্লিক করতেছ তখন তোমাকে আরেকটা লিংক এ গিয়ে সেই ব্লগ এর ডিটেইলস দেখাচ্ছে। আমরা এই টাইপ কাজ করবো সামনে সেজন্যে এটার বেসিক টা শিখে নিলাম।

Last updated