ধরুন আপনার একটি বিদ্যমান ডাটাবেজ রয়েছে যেখানে একটি টেবিল employees আছে। এই টেবিলে কিছু তথ্য রয়েছে:
id: প্রাইমারি কীname: কর্মচারীর নামemail: কর্মচারীর ইমেইলposition: কর্মচারীর পদcreated_at: তথ্য তৈরির তারিখ।
এখন, আমরা এই ডাটাবেজের জন্য Django ব্যবহার করে মডেল তৈরি করব এবং ডেটার উপর কাজ করব। নিচে ধাপে ধাপে সব ব্যাখ্যা করা হলো।
ধাপ ১: বিদ্যমান ডাটাবেজ প্রস্তুত করুন
আপনার ডাটাবেজ তৈরি করা আছে ধরে নেওয়া হচ্ছে। একটি MySQL ডাটাবেজ তৈরি করা হতে পারে এইভাবে:
CREATE DATABASE company_db;
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
position VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
এখানে, ডাটাবেজ company_db এবং টেবিল employees তৈরি করা হয়েছে।
ধাপ ২: Django প্রকল্প তৈরি করুন
২.১. নতুন Django প্রকল্প তৈরি:
django-admin startproject company_project
cd company_project
২.২. নতুন অ্যাপ তৈরি করুন:
python manage.py startapp company_app
২.৩. অ্যাপ রেজিস্টার করুন:
settings.py-এর INSTALLED_APPS-এ company_app যুক্ত করুন:
INSTALLED_APPS = [
...
'company_app',
]
ধাপ ৩: ডাটাবেজ কানেকশন সেটআপ করুন
settings.py-এ ডাটাবেজ সেটিংস পরিবর্তন করুন:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # MySQL ব্যবহৃত
'NAME': 'company_db', # ডাটাবেজের নাম
'USER': 'root', # MySQL ইউজার
'PASSWORD': 'your_password', # MySQL পাসওয়ার্ড
'HOST': 'localhost', # হোস্ট
'PORT': '3306', # ডিফল্ট MySQL পোর্ট
}
}
ধাপ ৪: inspectdb দিয়ে মডেল তৈরি
Django-র inspectdb কমান্ড দিয়ে বিদ্যমান ডাটাবেজ থেকে মডেল জেনারেট করুন।
৪.১. মডেল জেনারেট করা:
python manage.py inspectdb > company_app/models.py
৪.২. ফাইলটি চেক করুন:
company_app/models.py ফাইল খুলুন। এটি দেখতে কিছুটা এই রকম হবে:
from django.db import models
class Employees(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255)
email = models.CharField(unique=True, max_length=255)
position = models.CharField(max_length=255, blank=True, null=True)
created_at = models.DateTimeField()
class Meta:
managed = False # বিদ্যমান ডাটাবেজে সরাসরি কাজ হবে
db_table = 'employees' # টেবিলের নাম
ধাপ ৫: মডেল কাস্টমাইজ করুন (প্রয়োজন হলে)
managed = False মানে Django এই টেবিল নিজে তৈরি করবে না। তবে আপনি চাইলে এটিকে True করে নতুন টেবিল মাইগ্রেশন করতে পারেন।
ধাপ ৬: ORM দিয়ে ডেটার উপর কাজ করুন
৬.১. ডেটা রিড করা:
ডাটাবেজের ডেটা পড়ার জন্য Django ORM ব্যবহার করুন। views.py-এ একটি ভিউ তৈরি করুন:
from django.http import JsonResponse
from .models import Employees
def employee_list(request):
employees = Employees.objects.all().values() # সমস্ত ডেটা JSON আকারে পড়া
return JsonResponse(list(employees), safe=False)
৬.২. URL রেজিস্টার করুন:
urls.py ফাইল আপডেট করুন:
from django.urls import path
from company_app.views import employee_list
urlpatterns = [
path('employees/', employee_list, name='employee-list'),
]
৬.৩. ব্রাউজারে দেখুন:
সার্ভার চালান:
python manage.py runserver
তারপর http://127.0.0.1:8000/employees/ URL-এ গিয়ে ডেটা চেক করুন।
ধাপ ৭: ডেটা ইন্সার্ট এবং আপডেট করা
i) ডেটা ইন্সার্ট:
from company_app.models import Employees
new_employee = Employees(name='John Doe', email='john@example.com', position='Developer')
new_employee.save()
ii) ডেটা আপডেট:
employee = Employees.objects.get(id=1)
employee.position = 'Senior Developer'
employee.save()
iii) ডেটা ডিলিট:
employee = Employees.objects.get(id=1)
employee.delete()
উপসংহার:
এই ধাপগুলো অনুসরণ করে আপনি সহজেই inspectdb ব্যবহার করে বিদ্যমান ডাটাবেজের সাথে Django যুক্ত করতে পারবেন।
inspectdbবিদ্যমান টেবিলের জন্য দ্রুত মডেল জেনারেট করে।- মডেল কাস্টমাইজ করে Django ORM ব্যবহার করে CRUD অপারেশন করা যায়।
এটি একটি বাস্তব উদাহরণ যেখানে আপনি আপনার বিদ্যমান ডাটাবেজ Django দিয়ে পরিচালনা করতে পারবেন।