বাংলায় জ্যাঙ্গো

আমরা এতক্ষণে সাইট পরিচালক হিসেবে ব্লগ পোষ্ট করা শিখে ফেলেছি। কিন্তু আমার পোষ্ট তো আমি সবাই কে দেখাতে চাই। এখন আমরা দেখব আমাদের পোষ্ট কিভাবে দর্শকের সামনে পরিবেশন করতে পারি।

একটা উদাহরণ দেয়া যাক। আমরা রেস্টুরেন্ট এ খাবার খেতে গেলে আমাদের সামনে খাবার পরিবেশন করা হয়। এর পেছনে কয়েকটা ধাপ থাকে। প্রথম ধাপে বাজার থেকে মাছ মাংশ চাউল ইত্যাদি কিনে আনা হয়। দ্বিতীয় ধাপে সেগুল রান্না করা হয় এবং তৃতীয় ধাপে আমাদের সামনে পরিবেশন করা হয় মাজাদার খাবার।
আমাদের সাইটেও একই ব্যাপার । আমরা তিনটি ধাপে কাজ করব। প্রথম ধাপে আমরা আমাদের কাঁচামাল গুল সংগ্রহ করব যেটা জমা থাকে এ। দ্বিতীয় ধাপে এই কাঁচামালগুলোকে রান্না করা হবে view.py এ । তৃতীয় ধাপে সেগুল পরিবেশন করা হবে template এ যেমনঃ index.html, contact.html ইত্যাদি।

banglai-django-view-from-model

আমাদের model.py তো ইতমধ্যে তৈরি করে ফেলেছি। এখন রান্না করার পালা। আমাদের এপ এর মধ্যে view.py ফাইলটি টেক্সট এডিটরে খুলে ফেলি। প্রথম লাইনে লেখা আছে

from django.shortcuts import render

এর কাজ আমরা একটু পরেই দেখতে পাব।

রান্নাঘরে যেমন ভাত রান্নার জন্য এক চুলা, মাংশ রান্নার জন্য আলাদা চুলা থাকে তেমনি আমরা আমাদের ভিন্ন ভিন্ন অংশ দেখানোর ভিন্ন ফাংশন ব্যাবহার করব।

যেমনঃ def post_list() পোষ্ট এর লিস্ট দেখানোর জন্য ,

def home() প্রথম পাতা দেখানোর জন্য ব্যাবহার করতে পারি।

আমাদের প্রথম উদ্দ্যেশ্য হচ্ছে প্রথমপাতা তৈরি করা যেখানে দর্শক আমাদের সকল পোষ্ট দেখতে পাবে।

তাহলে আমরা আমাদের প্রথম ভিউ তৈরি করে ফেলি

def home(request):

      return render()

আমরা home নামে একটা ফাংশন ডিক্লেয়ার করেছি যেটা প্যারামিটার হিসেবে request কে নেবে । অর্থাৎ, এই ফাংশন ইউজার এর আবদার( request) গ্রহণ করে ব্যাবহারকারীকে কিছু রিটার্ন করে দেবে। আমরা ব্যাবহারকারীকে একটা html পেজ দেখাতে চাই । html পেজ দেখানোর জন্য render() ফাংশনটি ব্যাবহার করা যেতে পারে। render() ফাংশনটি তিনটি প্যারামিটার গ্রহণ করে request, template এর  নাম, একটা পাইপলাইন যেটার মাধ্যমে কোন তথ্য ভিউ থেকে টেম্পলেট এ পাঠানো যায়।

def home(request):
    return render(request, 'index.html')

এখন আমরা index.html ফাইলটি তৈরি করব। প্রজেক্ট ডিরেক্টরিতে একটি templates ( আপনি যে কোন নাম ব্যাবহার করতে পারেন ) নামে নতুন ডিরেক্টরি তৈরি করি ।

banglai-django-tree-template

এর মধ্যে  index.html ফাইলটি তৈরি করি।

আমরা যে আমাদের Template ফাইল templates নামের ডিরেক্টরিতে রাখছি, এত বড় সাহস পেলাম কোথায়। এখন আমাদের settings ফাইলে বলে দেয়া দরকার যে, ” বস, আমরা টেম্পলেট ফাইলের কথা বললেই আপনি বুঝে নেবেন সেটা templates এর মধ্যে আছে।

আমাদের settings.py ফাইলটি খুলে নিচের অংশটি খুঁজে বের করি।

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

এখানে ‘DIRS’:[] লিস্টের মধ্যে ‘templates’ যুক্ত করি

‘DIRS’:[‘templates’ ]

index.html ফাইলের মধ্যে আপনি যা ইচ্ছে তাই লিখে রাখতে পারেন।

আমাদের ভিউ তৈরি করা শেষ। এখন আমরা চাচ্ছি যে দর্শক যদি localhost:8000/home লিখে তাহলে আমরা আমাদের এই ভিউ দর্শকের সামনে হাজির করব। আমাদের সেটিং ডেরেক্টরির ( banglaidj) মধ্যে যে urls.py আছে তা খুলুন । প্রথমে এই ফাইলের মধ্যে আমাদের এপ এর ভিউ import করি

from blog_post import views

এখানে urlpatterns এর মধ্যে path() ফাংশন আছে। আরও একটি নতুন path() ফাংশন নিই। path() ফাংশন প্রথম প্যারামিটার হিসেবে url structure গ্রহণ করে। পরবর্তি প্যারামিটারে যে ভিউ দেখাতে চাই তাঁর নাম এবং তৃতীয় প্যারামিটার হিসেবে url এর নাম যাতে পরবর্তিতে এই নাম ধরে ডাক দিলে সে হাজির হয়ে যায়। পুরো ঠিকানা লেখার দরকার হবে না।

সুতরাং আমাদের urls.py হবেঃ

from django.urls import path
from django.contrib import admin
from blog_post import views

urlpatterns = [
  path('admin/', admin.site.urls),
  path('home/', views.home, name='home')
]

আমরা চাচ্ছি visitor www.banglaidjango.com/home টাইপের কোন url প্রবেশ করালে আমরা আমাদের
home টা দেখাবো। r এর অর্থ raw। এর পড়ে একটা string থাকবে। url রিকুয়েস্ট  স্ট্রিং এর মধ্যে home খুঁজতে
থাকবে। ঠিক home লেখাটি মিলে গেলে পরবর্তি ভিউ এ রিকুয়েস্ট পাঠিয়ে দেবে।

path('contact/', views.contact, name='contact-list'),
path('posts/', views.all_posts, name='all-posts')

এভাবে আমরা ইচ্ছামত url তৈরি করতে পারি।

আপনার ব্রাউজারে গিয়ে লিখুন http://localhost:8000/home/

হুররে……………… আমাদের টেমপ্লেট হাজির হয়েছে

banglai-django-first-template

পরবর্তি পোষ্টঃ টেমপ্লেটকে ডায়নামিক করুন >>

14
Leave a Reply

avatar
0 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
Recent comment authors
  Subscribe  
newest oldest most voted
Notify of