urls.py ফাইলটি Django প্রজেক্টের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ, যার মাধ্যমে অ্যাপ্লিকেশনটির URL রাউটিং (routing) পরিচালিত হয়। এটি Django অ্যাপ্লিকেশনকে ইউআরএল পাথগুলির সাথে সম্পর্কিত ভিউ (views) ফাংশন বা ক্লাস নির্ধারণ করতে সাহায্য করে। অন্য কথায়, urls.py ফাইলটি নির্দেশ করে, যখন কোনো ব্যবহারকারী একটি নির্দিষ্ট URL এ প্রবেশ করবে, তখন কী কাজ বা ভিউ চালু হবে।
Django রাউটিং সিস্টেমের মাধ্যমে আপনি সহজেই URL এর মাধ্যমে অ্যাপ্লিকেশনের বিভিন্ন অংশে নেভিগেট করতে পারেন।
urls.py ফাইলের মূল ভূমিকা
১. URL রাউটিং পরিচালনা করা
Django অ্যাপ্লিকেশনটিতে বিভিন্ন ভিউ (views) ফাংশন থাকে, এবং urls.py ফাইল URL এর সাথে সেগুলির সম্পর্ক স্থাপন করে। উদাহরণস্বরূপ, একটি নির্দিষ্ট URL পাথে গেলে একটি নির্দিষ্ট ভিউ ফাংশন চালু হবে।
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'), # Home page URL
path('about/', views.about, name='about'), # About page URL
]
এখানে:
path()ফাংশন URL পাথ এবং সংশ্লিষ্ট ভিউ ফাংশন নির্ধারণ করে।''এর মানে হচ্ছে হোম পেজ।views.indexএবংviews.aboutহল ভিউ ফাংশন, যেগুলিviews.pyফাইলে সংজ্ঞায়িত হবে।
২. URL প্যাটার্ন নির্ধারণ করা
urls.py ফাইলের মাধ্যমে আপনি বিভিন্ন URL প্যাটার্ন তৈরি করতে পারেন। এতে রেগুলার এক্সপ্রেশন বা প্যারামিটারও ব্যবহার করা যেতে পারে, যার মাধ্যমে ডাইনামিক URL গুলি মাপসই করা যায়।
urlpatterns = [
path('article/<int:id>/', views.article_detail, name='article_detail'),
]
এখানে, <int:id> প্যারামিটারটি নির্দেশ করে যে, ইউআরএলে একটি সংখ্যা পাঠানো হলে সেটি id প্যারামিটার হিসেবে article_detail ভিউতে পাঠানো হবে। এই প্যারামিটার ভিউ ফাংশনে প্রক্রিয়া করা যাবে।
৩. ভিউ ফাংশন এবং ক্লাসের সাথে URL যুক্ত করা
urls.py ফাইলে বিভিন্ন ভিউ ফাংশন বা ক্লাসের সাথে URL যুক্ত করা হয়। ভিউ ফাংশন বা ক্লাস সাধারণত views.py ফাইলে সংজ্ঞায়িত হয়, এবং এর মাধ্যমে আপনি নির্দিষ্ট লজিক প্রক্রিয়া করতে পারেন (যেমন ডেটা সংগ্রহ, টেমপ্লেট রেন্ডারিং, রিডাইরেকশন ইত্যাদি)।
from django.urls import path
from . import views
urlpatterns = [
path('home/', views.home_view, name='home'),
path('profile/', views.ProfileView.as_view(), name='profile'),
]
এখানে:
views.home_viewএকটি ফাংশন-ভিত্তিক ভিউ।views.ProfileView.as_view()একটি ক্লাস-ভিত্তিক ভিউ, যেখানে.as_view()ব্যবহৃত হয় ক্লাসটিকে ভিউ হিসেবে রেন্ডার করতে।
৪. URL নেমিং (URL Name)
Django এ, আপনি URL এর নামও দিতে পারেন, যা পরবর্তীতে টেমপ্লেট বা রিডাইরেকশনে ব্যবহৃত হতে পারে। এর ফলে URL এর পরিবর্তন বা রেফারেন্সিং সহজ হয়।
urlpatterns = [
path('home/', views.home_view, name='home'), # URL name 'home'
]
এখন, আপনি টেমপ্লেট বা ভিউ ফাংশনে reverse() ফাংশন ব্যবহার করে home নামের URL গুলি রেফারেন্স করতে পারেন:
from django.urls import reverse
reverse('home') # এটি 'home/' ইউআরএল পাথ ফিরিয়ে দেবে
৫. App-specific URLs
একটি Django প্রজেক্টে একাধিক অ্যাপ থাকতে পারে, এবং প্রতিটি অ্যাপের নিজস্ব urls.py ফাইল থাকতে পারে। এই ক্ষেত্রে, urls.py ফাইলে একাধিক অ্যাপের URL গুলি অন্তর্ভুক্ত করতে include() ফাংশন ব্যবহার করা হয়।
from django.urls import include, path
urlpatterns = [
path('blog/', include('blog.urls')), # Blog অ্যাপের URLs
path('shop/', include('shop.urls')), # Shop অ্যাপের URLs
]
এখানে, blog.urls এবং shop.urls হল প্রতিটি অ্যাপের নিজস্ব urls.py ফাইল, যা সংশ্লিষ্ট অ্যাপের URL পাথগুলি ধারণ করবে।
urls.py ফাইলের অন্যান্য গুরুত্বপূর্ণ বিষয়
১. URL কনফ্লিক্ট এড়ানো
Django স্বয়ংক্রিয়ভাবে ইউআরএল কনফ্লিক্ট এড়াতে সাহায্য করে। তবে, বড় প্রজেক্টে অ্যাপগুলোর মধ্যে URL কনফ্লিক্ট হতে পারে, তাই URL গুলিকে যথাযথভাবে গ্রুপ বা স্পেসিফাই করা উচিত। উদাহরণস্বরূপ, blog/ এবং shop/ এর জন্য আলাদা নামকরণ ব্যবহার করা।
২. Custom Error Pages
Django তে আপনি কাস্টম 404 বা 500 এরর পেজও সেট করতে পারেন, যা ইউজারকে একটি কাস্টম পেজ দেখায় যখন কোনো পেজ পাওয়া যায় না (404) বা সার্ভার এরর (500) ঘটে।
urlpatterns = [
path('404/', views.custom_404, name='404'),
]
এটি একটি কাস্টম 404 পেজ তৈরি করতে সাহায্য করবে।
সারাংশ
urls.py ফাইল Django প্রজেক্টের URL রাউটিং সিস্টেম পরিচালনা করে, যেখানে আপনি বিভিন্ন URL পাথ এবং ভিউয়ের মধ্যে সম্পর্ক স্থাপন করেন। এর মাধ্যমে আপনি URL প্যাটার্নগুলো ডাইনামিকভাবে নির্ধারণ, অ্যাপ-specific URL গুলি ইনক্লুড করা, এবং ভিউ ফাংশন বা ক্লাসগুলির সাথে URL যুক্ত করতে পারেন। urls.py একটি Django প্রজেক্টের অন্যতম মৌলিক এবং গুরুত্বপূর্ণ অংশ।
Read more