এই টিউটোরিয়ালটি আপনাকে দেখাবে কীভাবে Django-তে একটি সম্পূর্ণ CRUD (Create, Read, Update, Delete) এপ্লিকেশন তৈরি করতে হয়। আমরা একটি Student মডেল ব্যবহার করে স্টুডেন্টদের তথ্য পরিচালনা করব। ধাপে ধাপে প্রতিটি কাজের ব্যাখ্যা থাকবে এবং আমরা HTML টেমপ্লেটও সংযুক্ত করব।
চ্যাপ্টার ১: Django প্রজেক্ট তৈরি করা
ধাপ ১: নতুন Django প্রজেক্ট তৈরি করা
প্রথমে, আপনার Django প্রজেক্ট তৈরি করতে হবে। কমান্ড প্রম্পট/টার্মিনালে নিচের কমান্ডটি লিখুন:
django-admin startproject student_management
এই কমান্ডটি একটি নতুন প্রজেক্ট তৈরি করবে।
ধাপ ২: নতুন অ্যাপ তৈরি করা
এরপর, আপনার প্রজেক্টের ভিতরে একটি অ্যাপ তৈরি করতে হবে যেখানে আমাদের Student মডেল এবং অন্যান্য কোড থাকবে:
cd student_management
python manage.py startapp students
এই কমান্ডটি students নামে একটি নতুন অ্যাপ তৈরি করবে।
settings.py ফাইলটি খুলুন: Django প্রজেক্টের settings.py ফাইলটি খুঁজে বের করুন। সাধারণত, এটি আপনার মূল প্রজেক্ট ডিরেক্টরির ভিতরে থাকে, যেখানে manage.py ফাইল থাকে।
INSTALLED_APPS এ অ্যাপ যুক্ত করুন:
settings.py ফাইলের ভিতরে INSTALLED_APPS সেকশন খুঁজুন। এই সেকশনে সমস্ত অ্যাপের নাম লিস্ট আকারে থাকে যেগুলো Django আপনার প্রজেক্টে লোড করে। এই লিস্টের শেষে আপনার নতুন অ্যাপের নাম 'student' যোগ করুন।
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# আপনার তৈরি করা অ্যাপ
'student', # আমাদের নতুন অ্যাপ
]
চ্যাপ্টার ২: মডেল তৈরি করা
ধাপ ৩: মডেল তৈরি করা
এখন students অ্যাপের models.py ফাইলে আমাদের Student মডেলটি তৈরি করবো, যা আমাদের ডাটাবেসে টেবিল হিসেবে সংরক্ষিত হবে।
from django.db import models
class Student(models.Model):
first_name = models.CharField(max_length=50) # স্টুডেন্টের প্রথম নাম
last_name = models.CharField(max_length=50) # স্টুডেন্টের শেষ নাম
email = models.EmailField(max_length=254) # স্টুডেন্টের ইমেইল
phone_number = models.CharField(max_length=20) # ফোন নম্বর
registration_number = models.CharField(max_length=20, unique=True) # ইউনিক রেজিস্ট্রেশন নম্বর
department = models.CharField(max_length=50) # ডিপার্টমেন্ট
semester = models.CharField(max_length=10) # সেমিস্টার
section = models.CharField(max_length=10) # সেকশন
def __str__(self):
return self.first_name + " " + self.last_name # মডেল থেকে সুন্দরভাবে স্টুডেন্টের নাম রিটার্ন করবে
এই মডেলটি আমাদের স্টুডেন্টের সব তথ্য সংরক্ষণ করবে।
ধাপ ৪: মাইগ্রেশন তৈরি করা
মডেল তৈরি করার পর, এটি ডাটাবেসে প্রতিফলিত করতে হবে। তার জন্য প্রথমে মাইগ্রেশন ফাইল তৈরি করতে হবে এবং তারপর মাইগ্রেশন চালাতে হবে:
python manage.py makemigrations
python manage.py migrate
চ্যাপ্টার ৩: ফর্ম তৈরি করা
ধাপ ৫: Student ফর্ম তৈরি করা
এখন আমরা Student-এর জন্য একটি ফর্ম তৈরি করব যা আমাদের HTML পেজে স্টুডেন্টের তথ্য ইনপুট করতে সাহায্য করবে। এটি করার জন্য forms.py ফাইলে নিচের কোডটি যোগ করুন:
from django import forms
from .models import Student
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = '__all__' # সমস্ত ফিল্ডস ব্যবহার করা হবে
এই ফর্মটি Student মডেলের সাথে যুক্ত থাকবে এবং সমস্ত ফিল্ড অন্তর্ভুক্ত করবে।
চ্যাপ্টার ৪: ভিউস তৈরি করা
ধাপ ৬: ভিউ ফাংশন তৈরি করা
এখন আমাদের ভিউ ফাংশনগুলো তৈরি করতে হবে, যা আমাদের CRUD অপারেশন পরিচালনা করবে। প্রথমে students/views.py ফাইলে যান এবং নিচের কোডটি লিখুন:
from django.shortcuts import render, redirect
from .models import Student
from .forms import StudentForm
# স্টুডেন্টের তালিকা দেখতে
def view_student_list(request):
students = Student.objects.all() # সকল স্টুডেন্টের তালিকা
context = {'students': students}
return render(request, 'student/list.html', context)
# নতুন স্টুডেন্ট তৈরি করতে
def create_student(request):
if request.method == 'POST':
form = StudentForm(request.POST)
if form.is_valid():
form.save() # স্টুডেন্ট সেভ করা
return redirect('student_list')
else:
form = StudentForm()
context = {'form': form}
return render(request, 'student/create.html', context)
# স্টুডেন্টের তথ্য আপডেট করতে
def edit_student(request, pk):
student = Student.objects.get(pk=pk)
if request.method == 'POST':
form = StudentForm(request.POST, instance=student)
if form.is_valid():
form.save()
return redirect('student_list')
else:
form = StudentForm(instance=student)
context = {'form': form}
return render(request, 'student/edit.html', context)
# স্টুডেন্ট ডিলিট করতে
def delete_student(request, pk):
student = Student.objects.get(pk=pk)
student.delete()
return redirect('student_list')
চ্যাপ্টার ৫: URL কনফিগারেশন
ধাপ ৭: URL সেট করা
এখন আমাদের URL প্যাটার্ন সেট করতে হবে। students/urls.py ফাইলে নিচের কোডটি যোগ করুন:
from django.urls import path
from . import views
urlpatterns = [
path('list/', views.view_student_list, name='student_list'),
path('create/', views.create_student, name='create_student'),
path('edit/<int:pk>/', views.edit_student, name='edit_student'),
path('delete/<int:pk>/', views.delete_student, name='delete_student'),
]
এছাড়া, আপনার প্রজেক্টের মূল urls.py ফাইলে এই লাইনটি যোগ করুন:
from django.urls import include
urlpatterns = [
path('students/', include('students.urls')), # students অ্যাপের URL ইনক্লুড করা হচ্ছে
]
চ্যাপ্টার ৬: HTML টেমপ্লেট তৈরি করা
ধাপ ৮: HTML ফাইল তৈরি করা
আমরা এখন templates ডিরেক্টরির ভিতরে student নামে একটি ফোল্ডার তৈরি করব এবং সেখানে আমাদের HTML ফাইলগুলি রাখব।
list.html:
<h2>Student List</h2>
<table border="1">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Phone Number</th>
<th>Registration Number</th>
<th>Actions</th>
</tr>
{% for student in students %}
<tr>
<td>{{ student.first_name }}</td>
<td>{{ student.last_name }}</td>
<td>{{ student.email }}</td>
<td>{{ student.phone_number }}</td>
<td>{{ student.registration_number }}</td>
<td>
<a href="{% url 'edit_student' student.pk %}">Edit</a> |
<a href="{% url 'delete_student' student.pk %}">Delete</a>
</td>
</tr>
{% endfor %}
</table>
<a href="{% url 'create_student' %}">Add New Student</a>
create.html & edit.html:
<h2>{{ form.instance.pk|yesno:"Edit,Create" }} Student</h2>
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
<a href="{% url 'student_list' %}">Back to Student List</a>
চ্যাপ্টার ৭: প্রজেক্ট রান করা
ধাপ ৯: সার্ভার চালু করা
সব কাজ শেষ করার পর, আমাদের প্রজেক্টটি চালাতে হবে। টার্মিনালে নিচের কমান্ডটি লিখুন:
python manage.py runserver
এরপর, আপনার ব্রাউজারে যান এবং নিচের URL-এ প্রয়োজনীয় CRUD অপারেশনগুলো পরীক্ষা করুন:
- http://localhost:8000/students/list/
- http://localhost:8000/students/create/
- http://localhost:8000/students/edit/1/
- http://localhost:8000/students/delete/1/
চ্যাপ্টার ৮: উপসংহার
এই টিউটোরিয়াল থেকে আমরা একটি সম্পূর্ণ Django CRUD এপ্লিকেশন তৈরি করতে শিখেছি। এই প্রজেক্টে আমরা কিভাবে মডেল তৈরি করা, ফর্ম তৈরি করা, ভিউস তৈরি করা, এবং HTML টেমপ্লেট ব্যবহার করা শিখলাম।