Django

⌘K
  1. Home
  2. Django
  3. Django তে কিভাবে কাজ করতে হয়

Django তে কিভাবে কাজ করতে হয়

Django তে কিভাবে কাজ করতে হয় তা আমরা বুঝবো এর পর আমরা আস্তে আস্তে অন্য অ্যাডভান্স টপিক গুলো শিখতে শুরু করবো।

আমরা প্রথমে প্রজেক্ট এর ফোল্ডার সম্পর্কে জানবো এরপর Django অ্যাডমিন প্যানেল ও apps নিয়ে কিভাবে কাজ করতে হয় তা জানবো।

Part : 1 অ্যাডমিন প্যানেল

এর আগে আমরা প্রজেক্ট রান করেছিলাম কিন্তু আমাদের Django যে একটি অ্যাডমিন প্যানেল দিয়ে রেখেছে যেখান থেকে আমরা সব কন্ট্রোল করতে পারবো তা কি আমরা জানি।

Django ইউজার নিয়ে কাজ করার জন্য আমাদের তিনটি রোল দেয়।

  • super user সুপার অ্যাডমিন
  • stuff স্টাফ
  • register user নরমাল রেজিস্টার করা ইউজার যারা লগইন ও রেজিস্ট্রেশন করবে

সুপার অ্যাডমিন | স্টাফ super user & stuff

অ্যাডমিন প্যানেল সবাই ঢুকতে পারেনা একজন সুপার অ্যাডমিন আগে ঢুকে এরপর যদি অন্য কোনো ইউজারকে ঢুকতে প্রয়োজন হয় তখন অ্যাডমিন ওই ইউজারকে স্টাফ বানিয়ে দেয় অ্যাডমিন প্যানেল থেকে তখন ওই ইউজার অ্যাডমিন প্যানেল এ ঢুকতে পারে।

এখন আপনার মনে ভয় লাগতে পারে অন্য ইউজারকে একসেস দিলে সে যদি এপ্লিকেশন এর বিভিন্ন সেটিংস পরিবির্তন করে ফেলে চিন্তা করবেন না ডিফল্ট ভাবে সে শুধু অ্যাডমিন প্যানেল এ ঢুকতে পারবে এর পর যদি অ্যাডমিন তাকে নির্দিষ্ট কিছু পারমিশন দেয় তখন সে বাকি কাজ গুলো করতে পারে।

রেজিস্ট্রেশন ইউজার | register user

অ্যাডমিন প্যানেল এ ঢুকতে পারবে না কিন্তু যদি কোথাও লগইন ও রেজিস্ট্রেশন এর দরকার হয় তখন সেখানে লগইন করে কাজ করতে পারবে।

সুপার ইউজার বা সুপার অ্যাডমিন বানাই

আমাদের প্রজেক্টের ফোল্ডারে manage.py নামে যে ফাইলটি আছে ওখানে কমান্ড প্রম্প ওপেন করে আগে সুপার ইউজার তৈরী করি। মনে রাখবেন সুপার ইউজার কিন্তু একজনই আপনি চাইলেই আবার সুপার ইউজার বানাতে পারবেন না কিন্তু অন্যদের সেই সুপার ইউজার এর পারমিশন দিতে পারবেন।

ডেটাবেজ migrate করি বা ডেটাবেজ এ টেবিল বানাই

আমরা যে ডেটাবেজে ইউজার বানাবো আমাদের তো টেবিল বানাতে হবে এজন্য কমান্ড প্রম্প এ নিচের কমান্ড দুইটি রান করি।

python manage.py makemigrations
python manage.py migrate

এই রকম দেখতে পারবো মানে ডেটাবেজ এ টেবিল তৈরী হয়েছে এবার super user তৈরী করি। নিচের কমান্ড দিলে username ,email ও password দিতে বলবে দিয়ে এন্টার করলে super user তৈরী হয়ে যাবে।

python manage.py createsuperuser

অ্যাডমিন প্যানেল এ প্রবেশ করি

ব্রাউজার এ গিয়ে লগইন করি 127.0.0.1:8000/admin

এইরকম অ্যাডমিন প্যানেল দেখতে পারবো।

অ্যাডমিন প্যানেল নিয়ে আরো টিউটোরিয়াল দেব পরে এখন এইটুকু বুঝি

Part : 2 জ্যাঙ্গো এপ্লিকেশন

জ্যাঙ্গো এপ্লিকেশন

মনেকরেন আপনি একটা বড় প্রজেক্ট এ কাজ করছেন যেখানে ব্লগ এপ্লিকেশন লাগবে ব্লগ লেখার জন্য আবার পণ্য বিক্রির জন্য ecommerce এপ্লিকেশন ও লাগবে আবার আপনার প্রতিষ্ঠানের বিভিন্ন হিসাবের জন্য একটি হিসাব করার এপ্লিকেশন মিলিয়ে একটি প্রজেক্ট চাচ্ছেন যেখানে সব একজায়গায় থাকবে কিন্তু একবার চিন্তা করেন তো এত বড় প্রজেক্ট রক্ষনাবেক্ষন করা কিন্তু অনেক কঠিন যদি প্রজেক্ট আরো বড় হয় তাহলে তো কথায় নেই। এই সমস্যা সমাধানের জন্য জ্যাঙ্গো আমাদের এপ্লিকেশন বা apps এর সুবিধা দিয়েছে আমরা ইচ্ছামত apps বানিয়ে তা প্রজেক্ট এ যুক্ত করে দেই আর সেটা কাজ করে। মনে করেন কারো একটা Django প্রজেক্ট এ অনেক এপ্লিকেশন আছে এবং একটা ব্লগ এপ্লিকেশন আছে আপনার ওইটা ভালো লাগলো আপনাকে তার সম্পূর্ণ প্রজেক্ট লাগবে না শুধু ব্লগ এপ্লিকেশন টি নিয়ে আপনার প্রজেক্ট এ যুক্ত করে দিন কাজ শেষ।

সুতরাং বুঝতে পারলাম জ্যাঙ্গো এপ্লিকেশন জ্যাঙ্গো প্রজেক্টে মডিউলের মতো কাজ করে।

জ্যাঙ্গো এপ্লিকেশন তৈরী করি

প্রজেক্টের ফোল্ডারে গিয়ে আবারো বলছি যেখানে manage.py ফাইল আছে সেখানে কমান্ড প্রম্প ওপেন করে কাজ করতে হবে। একটি এপ্লিকেশন বানাই নীচের কমান্ড রান করে।

এখানে আমি স্কুলের জন্য এপ্লিকেশন বানাচ্ছি এজন্য school নাম দিয়েছি আপনার দরকারে অন্য নাম দেবেন।

python manage.py startapp school

দেখতে পারবো নতুন একটি ফোল্ডার তৈরী হয়েছে এবং এর মধ্যে কিছু ফাইল ও রয়েছে ঐগুলো আমরা আস্তে আস্তে শিখবো।

এপ্লিকেশন তো বানালাম এটা কি এখন সরাসরি প্রজেক্টের সাথে কাজ করবে না এটাকে প্রজেক্টে যুক্ত করতে হবে। উত্তর হলো যুক্ত করতে হবে। এবার এপ্লিকেশন টা বোঝার জন্য এ কিছু কাজ করে আমাদের প্রজেক্টের সাথে যুক্ত করি

প্রজেক্টের সাথে যুক্ত করি

প্রজেক্টের মধ্যে projectname/projectname/settings.py ফাইলে INSTALLED_APPS অপশনে নিচের মতো আপডেট করি

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'school',
]

এপ্লিকেশন ফোল্ডারে ফাইল

এপ্লিকেশন ফোল্ডারে যে ফাইল গুলো তৈরী হয়েছে কাজের জন্য আমাদের নিচের ফাইল গুলো কাজে লাগে বেশি।

  • models.py
  • views.py
  • admin.py

অন্যগুলো বেশি কাজে লাগে না এবং test.py এটা একটা টেস্ট ফাইল কিছু টেস্ট করার দরকার হলে ব্যবহার করার জন্য এটা ব্যবহার করা যেতে পারে আমাদের দরকার নেই। migrations নামে ফোল্ডারে ডেটাবেজের ফাইল থাকে ঐটাও দরকার নেই।

এখন আমরা আস্তে আস্তে ফাইল গুলো ব্যবহার করা শিখবো

views.py :

এই ফাইলটিতে আমরা আমাদের এপ্লিকেশন এর লজিক ও কন্ট্রোলিং এর সকল পাইথন কোড লিখবো। তাহলে ওপেন করি। নিচের মতো দেখতে পারবো

from django.shortcuts import render
# Create your views here.

এবার আমরা hello world প্রিন্ট করার জন্য মেথড লিখবো নিচের মতো কোড লিখি

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def home(request):
    return HttpResponse("Hello, World!")

urls.py

আমাদের এপ্লিকেশন এর ইউআরএল গুলো লেখার জন্য একটি ফাইল দরকার হবে এজন্য আমরা urls.py নামে একটি ফাইল বানাই ইচ্ছা করলে অন্য নামে বানাতে পারি তবে এটা অনেক ডেভেলপার ব্যবহার করে কমন নাম হিসাবে।

এর মেথডটি ইউআরএল দিয়ে ডাকার জন্য এপ্লিকেশন ফোল্ডারে যে urls.py ফাইল বানিয়ে ছিলাম ঐটা আপডেট করি

from django.urls import path
from . import views
urlpatterns = [
    path("home",views.home,name="home_page")
    
]

ব্যাখ্যা :

from django.urls import path

এই লাইনটি django.urls মডিউল থেকে path ফাংশনটি ইম্পোর্ট করে। path ফাংশনটি URL প্যাটার্ন তৈরি করতে ব্যবহৃত হয়।

from . import views

এই লাইনটি বর্তমান ডিরেক্টরি থেকে views মডিউল ইম্পোর্ট করে। views মডিউলটি Django ভিউগুলি সংজ্ঞায়িত করে।

urlpatterns = [

এই লাইনটি একটি তালিকা শুরু করে যা URL প্যাটার্ন ধারণ করে।

  path("home",views.home,name="home_page")

এই লাইনটি একটি URL প্যাটার্ন তৈরি করে যা URL /home/ মিললে কাজ করবে। এই URL প্যাটার্নটি views মডিউলের home ফাংশনটিকে কল করবে। এই ফাংশনটি হোম পেজের জন্য ভিউ হিসেবে কাজ করবে। এই URL প্যাটার্নের নাম "home_page"

   
]

এই লাইনটি URL প্যাটার্ন তালিকাটি শেষ করে।

প্রজেক্টের ইউআরএল এর সাথে যুক্ত করি

আমরা তো এপ্লিকেশন এর জন্য ইউআরএল ফাইল বানালাম ও ভিউ বানালাম আমাদের এপ্লিকেশন রেডি কিন্তু আমাদের প্রজেক্টের urls.py ফাইলে বলে দিতে হবে যে school এপ্লিকেশন এর ইউআরএল গুলো প্রজেক্ট যুক্ত হবে।

প্রজেক্টের urls.py ওপেন করি । নিচের মতো দেখতে পারবো

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

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

২ নং লাইন টি পরিবর্তন করি

from django.urls import path,include

school এপ্লিকেশন এর ইউআরএল এর জন্য নতুন path যুক্ত করি

path("",include("school.urls"))

সম্পূর্ণ ফাইলটি দেখতে নিচের মতো হবে

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path("",include("school.urls"))
]

এবার আমাদের ব্রাউজার ওপেন করে ইউআরএল এ গিয়ে দেখি

Articles

How can we help?