সব ব্লগ দেখুন
ওয়েব ডেভেলপমেন্ট7 মিনিট পড়ার সময়0 বার দেখা হয়েছে

ফ্রিল্যান্স প্রজেক্টের জন্য Django CRUD অ্যাপ তৈরির সম্পূর্ণ গাইড (বাংলাদেশ)

বাংলাদেশের ফ্রিল্যান্সারদের জন্য Django ও PostgreSQL দিয়ে CRUD অ্যাপ তৈরির ধাপে ধাপে টিউটোরিয়াল। প্রকৃত উদাহরণ ও কোড সহ।

A

NonAcademy Team

৫ জুলাই, ২০২৬

ফ্রিল্যান্স প্রজেক্টের জন্য Django CRUD অ্যাপ তৈরির সম্পূর্ণ গাইড (বাংলাদেশ)

ভূমিকা

তুমি কি ফ্রিল্যান্সিং শুরু করতে চাও, কিন্তু কোথা থেকে শুরু করবে বুঝতে পারছ না? অথবা হয়তো কিছু প্রজেক্ট করেছ, কিন্তু ক্লায়েন্টের চাহিদা অনুযায়ী পূর্ণাঙ্গ CRUD অ্যাপ বানাতে পারছ না? তাহলে এই আর্টিকেলটি শুধু তোমার জন্যই। আজ আমরা শিখবো কীভাবে Django ও PostgreSQL দিয়ে একটি পূর্ণাঙ্গ CRUD (Create, Read, Update, Delete) অ্যাপ বানানো যায়, যা সরাসরি তোমার ফ্রিল্যান্স প্রজেক্টে ব্যবহার করতে পারবে। এই Django CRUD app tutorial Bangladesh সিরিজটি এমনভাবে সাজানো যাতে তুমি শুধু কোডিং শিখবে না, বরং বুঝবে কীভাবে একটি প্রফেশনাল অ্যাপ তৈরি করতে হয়।

প্রস্তুতি: পরিবেশ সেটআপ

প্রথমেই নিশ্চিত হও যে তোমার কম্পিউটারে Python, pip, এবং PostgreSQL ইনস্টল করা আছে। যদি না থাকে, তাহলে অফিসিয়াল সাইট থেকে ডাউনলোড করে নাও। এরপর একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করো:

python -m venv myenv
source myenv/bin/activate  # Linux/Mac
myenv\Scripts\activate  # Windows

এবার Django ও PostgreSQL অ্যাডাপ্টার ইনস্টল করো:

pip install django psycopg2-binary

একটি Django প্রজেক্ট ও অ্যাপ তৈরি করো:

django-admin startproject myproject
cd myproject
python manage.py startapp crudapp

PostgreSQL ডাটাবেস কনফিগারেশন

প্রথমে PostgreSQL-এ একটি ডাটাবেস তৈরি করো। টার্মিনালে psql চালিয়ে নিচের কমান্ডগুলো দাও:

CREATE DATABASE cruddb;
CREATE USER myuser WITH PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE cruddb TO myuser;

এবার myproject/settings.py ফাইলে ডাটাবেস কনফিগার করো:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'cruddb',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

এছাড়া INSTALLED_APPS-এ 'crudapp' যোগ করতে ভুলো না।

মডেল তৈরি ও মাইগ্রেশন

একটি সাধারণ ব্লগ পোস্টের মডেল তৈরি করি। crudapp/models.py:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

মাইগ্রেশন তৈরি ও প্রয়োগ করো:

python manage.py makemigrations
python manage.py migrate

এখন PostgreSQL-এ crudapp_post টেবিল তৈরি হবে।

CRUD অপারেশনের জন্য ভিউ, ইউআরএল ও টেমপ্লেট

ভিউ তৈরি (views.py)

from django.shortcuts import render, redirect, get_object_or_404
from .models import Post
from .forms import PostForm

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'crudapp/post_list.html', {'posts': posts})

def post_create(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('post_list')
    else:
        form = PostForm()
    return render(request, 'crudapp/post_form.html', {'form': form})

def post_update(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == 'POST':
        form = PostForm(request.POST, instance=post)
        if form.is_valid():
            form.save()
            return redirect('post_list')
    else:
        form = PostForm(instance=post)
    return render(request, 'crudapp/post_form.html', {'form': form})

def post_delete(request, pk):
    post = get_object_or_404(Post, pk=pk)
    if request.method == 'POST':
        post.delete()
        return redirect('post_list')
    return render(request, 'crudapp/post_confirm_delete.html', {'post': post})

ফর্ম তৈরি (forms.py)

from django import forms
from .models import Post

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['title', 'content']

ইউআরএল কনফিগারেশন (urls.py)

crudapp/urls.py:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list, name='post_list'),
    path('create/', views.post_create, name='post_create'),
    path('update/<int:pk>/', views.post_update, name='post_update'),
    path('delete/<int:pk>/', views.post_delete, name='post_delete'),
]

প্রজেক্টের মূল urls.py-তে অন্তর্ভুক্ত করো:

from django.urls import include, path

urlpatterns = [
    path('', include('crudapp.urls')),
]

টেমপ্লেট তৈরি

crudapp/templates/crudapp/post_list.html:

<h1>All Posts</h1>
<a href='{% url 'post_create' %}'>Create New Post</a>
<ul>
{% for post in posts %}
    <li>
        <h2>{{ post.title }}</h2>
        <p>{{ post.content }}</p>
        <a href='{% url 'post_update' post.pk %}'>Edit</a>
        <a href='{% url 'post_delete' post.pk %}'>Delete</a>
    </li>
{% endfor %}
</ul>

post_form.html:

<h1>{% if form.instance.pk %}Edit{% else %}Create{% endif %} Post</h1>
<form method='post'>
    {% csrf_token %}
    {{ form.as_p }}
    <button type='submit'>Save</button>
</form>

post_confirm_delete.html:

<h1>Delete Post</h1>
<p>Are you sure you want to delete '{{ post.title }}'?</p>
<form method='post'>
    {% csrf_token %}
    <button type='submit'>Yes, delete</button>
</form>

বাস্তব উদাহরণ: একটি ব্লগ অ্যাপ

উপরের কোডগুলো ব্যবহার করে তুমি একটি পূর্ণাঙ্গ ব্লগ অ্যাপ তৈরি করতে পারো। ক্লায়েন্টের জন্য ব্লগ, টাস্ক ম্যানেজার, বা ইনভেন্টরি সিস্টেম – সবই CRUD-এর ভিত্তিতে কাজ করে। বাংলাদেশের ফ্রিল্যান্স মার্কেটে যেমন Upwork, Fiverr, অথবা স্থানীয় মার্কেটপ্লেসে এই দক্ষতা খুবই চাহিদাসম্পন্ন। তুমি যদি আরও শিখতে চাও, তাহলে আমাদের কোর্সগুলো দেখতে পারো।

সাধারণ সমস্যা ও সমাধান

  • ডাটাবেস কানেকশন এরর: নিশ্চিত করো PostgreSQL সার্ভিস চলছে এবং settings.py-তে সঠিক ক্রেডেনশিয়াল আছে।
  • মাইগ্রেশন এরর: python manage.py makemigrations এর পর python manage.py migrate দিতে ভুলো না।
  • টেমপ্লেট নট ফাউন্ড: টেমপ্লেট ফোল্ডারের নাম templates এবং অ্যাপের নামের সাথে মিল আছে কিনা চেক করো।

উপসংহার

এই Django CRUD app tutorial Bangladesh আর্টিকেলটি অনুসরণ করে তুমি একটি বেসিক CRUD অ্যাপ তৈরি করতে পারবে। ফ্রিল্যান্সিং ক্যারিয়ারে এই দক্ষতা তোমাকে এগিয়ে রাখবে। আরও উন্নত ফিচার যেমন অথেনটিকেশন, API, বা ডিপ্লয়মেন্ট শিখতে আমাদের ব্লগ ভিজিট করো।

সাধারণ প্রশ্নোত্তর

প্রশ্ন ১: Django CRUD অ্যাপ তৈরি করতে কতদিন লাগে?

বেসিক CRUD অ্যাপ তৈরি করতে ২-৩ দিন যথেষ্ট, যদি Django ও PostgreSQL এর বেসিক জানো।

প্রশ্ন ২: PostgreSQL এর পরিবর্তে MySQL ব্যবহার করা যাবে?

হ্যাঁ, Django MySQL-ও সাপোর্ট করে। শুধু ENGINE পরিবর্তন করে 'django.db.backends.mysql' সেট করো।

প্রশ্ন ৩: ফ্রিল্যান্স প্রজেক্টে CRUD অ্যাপের ক্লায়েন্ট কেমন পাব?

Upwork, Fiverr, অথবা আমাদের কমিউনিটি থেকে ক্লায়েন্ট পেতে পারেন।

প্রশ্ন ৪: ডিপ্লয়মেন্টের জন্য কী কী জানা দরকার?

Heroku, PythonAnywhere, অথবা VPS সার্ভার ব্যবহার করতে পারো। ডিপ্লয়মেন্ট টিউটোরিয়াল আমাদের রিসোর্স পেজে আছে।

প্রশ্ন ৫: এই অ্যাপে ইউজার লগইন যোগ করা যাবে?

অবশ্যই, Django-র built-in অথেনটিকেশন সিস্টেম ব্যবহার করে সহজেই লগইন সিস্টেম যোগ করতে পারো।

শেয়ার করুন: