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,includeschool এপ্লিকেশন এর ইউআরএল এর জন্য নতুন 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
- sylabus
- Django কি এবং কেন এটি ব্যবহার করবেন?
- Django এর ইতিহাস
- MVC এবং MTV ডিজাইন প্যাটার্ন
- Django এর সুবিধাসমূহ
- Project Setup
- সেটিংস পরিচিতি
- অ্যাপস কি?
- apps কে প্রজেক্টের সাথে যুক্ত করি
- Django তে অ্যাডমিন প্যানেল ব্যবহার করে সহজে এপ্লিকেশন বানানো
- Beginner Crud এপ্লিকেশন
- media ফাইল
- load css,js
- এইচটিএমএল টেমপ্লেট নিয়ে কাজ করি
- Context Processor
- স্ট্যাটিক ফাইল | Static File
- message
- Urls
- Django Request এবং Response Life Cycle
- Database
- Authentication all auth
- Send Email
- Pagination
- Search
- Form ফর্ম
- Views
- Uploading Images to Cloudinary
- middleware
- Django Middleware
- Django middleware কীভাবে তৈরি করবেন?
- ৪. ১ Django SecurityMiddleware HTTPS-এ
- ৪. Django SecurityMiddleware কী এবং এটি কীভাবে কাজ করে?
- Django ডিফল্টভাবে কিছু middleware প্রদান করে
- ৪. ২ SecurityMiddleware : X-Content-Type-Options হেডার এবং তার ভূমিকা 🌐
- ৪. ৩ SecurityMiddleware : X-Frame-Options হেডার এবং তার ভূমিকা
- ৫. Django এর ডিফল্ট SessionMiddleware কি এবং কিভাবে কাজ করে
- ৬. django এর CommonMiddleware সম্পর্কে বিস্তারিত
- ৭. Django-র CSRF Middleware সম্পর্কে বিস্তারিত
- Jquery Ajax Live Post Data
- Django Custom Management Command ও বিল্ট-ইন কমান্ড
- Signal সিগন্যাল
- SSlCommerz
- Channels
- Admin Panel
- User Model লগইন রেজিস্ট্রেশন (default )
- User model custom field । Registration Login Logout Custom Html
- Django-এর ডিফল্ট User মডেলটি কাস্টমাইজ
- Permission
- Chart
- Celery
- stripe
- Tinymce Editor
- highlight.js
- Select2
- Autocomplete Show Multiple Fields
- Autocomplete Search
- Django Orm (QuerySet API)
- Django Shell
- Multi-Database Setup
- ইউনিট টেস্টিং
- Image Processing with Pillow
- ইন্টারন্যাশনালাইজেশন ও লোকালাইজেশন:
- Admin Template Custom
- Field level permission (ফিল্ড-লেভেল পারমিশন)
- django-admin-soft-dashboard
- কাস্টম মডেল পারমিশন তৈরি করা
- Django এর Meta ক্লাসে বিভিন্ন মেটাডাটা কনফিগার
- Django Meta ক্লাসে constraints নিয়ে বিশদ টিউটোরিয়াল
- Django Model clean() এবং full_clean() নিয়ে বিস্তারিত
- CKEditor
- Speed Optimization
- ( ক্যাশিং ০ ১ ) Redis দিয়ে Low-Level Caching বা কোয়েরি ক্যাশিং
- ( ক্যাশিং ০ ১. ১ )Django অ্যাডমিন প্যানেলে Redis ব্যবহার করে ক্যাশিং
- (ক্যাশিং ০. ০ ) Django তে বিভিন্ন ক্যাশিং ব্যাকএন্ড
- স্ট্যাটিক ফাইল ক্যাশিং ও কম্প্রেশন
- ( ডাটাবেস অপ্টিমাইজেশন )select_related এবং prefetch_related
- (ডাটাবেস অপ্টিমাইজেশন ০ ১ ) কোয়েরি Optimization কি
- (ক্যাশিং ০ ২ ) Redis দিয়ে Django-তে টেম্পলেট ক্যাশিং
- (ক্যাশিং ০ ৩. )Redis দিয়ে ভিউ ক্যাশিং
- (ডাটাবেস অপ্টিমাইজেশন) index
- মিডিয়া ও স্ট্যাটিক ফাইল অপ্টিমাইজেশন
- (ক্যাশিং ০ ৪) বিভিন্ন পরিস্থিতিতে Django ক্যাশিং কিভাবে সঠিকভাবে ব্যবহার করা উচিত
- ( ডাটাবেস অপ্টিমাইজেশন ) only() এবং defer() মেথড ব্যবহার করে
- ডেটাবেস কানেকশন পুলিং
- ডেটাবেস শার্ডিং (Database Sharding ) কী?
- প্রাকটিক্যাল ডেটাবেস শার্ডিং প্রজেক্ট (Django দিয়ে)
- multiple redis cache server
- Internationalization and Localization
- Django inspectdb ব্যবহার করে বিদ্যমান ডাটাবেজ থেকে মডেল তৈরি:
- Logging and Monitoring Security Events
- Docker
- Django তে environment ভেরিয়েবল ব্যবহার
- লোড ব্যালেন্সিং
- Deadlock