django3

আমি windows 10 use করি।এখন আমি আমার desktop এ djnagosite নামে একটা ফোল্ডার এ তোমার ইচ্ছামত নাম দিয়ে একটা ৩ পেইজের ওয়েবসাইট বানিয়ে দাও। আমি windows powershell and vs code editor ইউজ করতে চাই। একেবারে শূন্য থেকে খুব ভালো করে সহজ করে শিখিয়ে দাও কোডের ব্যাখ্যা সহ ।আমার লক্ষ্য django দিয়ে যেকোনো এডুকেশন ওয়েবসাইট এবং ই কমার্স যেন বানাতে পারি,এখন শুরু করো। কোন ভুল করবে না। একেবারে সঠিক তথ্য ও কোড দিবে যেন ভবিষ্যতে vps এ সাইট বানাতে পারি djnago দিয়ে


Windows 10-এ PowerShell এবং VS Code ব্যবহার করে ৩ পেজের একটি আধুনিক ও প্রফেশনাল জ্যাঙ্গো (Django) ওয়েবসাইট তৈরির সম্পূর্ণ গাইড নিচে দেওয়া হলো। ভবিষ্যতে VPS ডিপ্লয়মেন্ট যাতে সহজ হয়, সেই স্ট্যান্ডার্ড আর্কিটেকচার মেনে প্রজেক্টটি সাজানো হয়েছে।


ধাপ ১: ফোল্ডার তৈরি ও VS Code ওপেন করা

কীবোর্ডের Windows Key + S চেপে লিখুন PowerShell এবং এটি ওপেন করুন।


নিচের কমান্ডগুলো দিয়ে ডেক্সটপে djnagosite ফোল্ডার তৈরি করে VS Code ওপেন করুন:


PowerShell

cd ~/Desktop

mkdir djnagosite

cd djnagosite

code .

(VS Code ওপেন হলে কীবোর্ড থেকে Ctrl + ~ চেপে ভেতরের ইন্টিগ্রেটেড PowerShell টার্মিনালটি চালু করুন।)


ধাপ ২: ভার্চুয়াল এনভায়রনমেন্ট (Virtual Environment) তৈরি

প্রজেক্টের প্যাকেজ আলাদা রাখতে ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা আবশ্যক। Windows 10-এ ডিফল্টভাবে স্ক্রিপ্ট এক্সিকিউশন রেস্ট্রিকশন থাকে, তাই বাইপাস কমান্ডসহ রান করুন:


PowerShell

# ভার্চুয়াল এনভায়রনমেন্ট তৈরি

python -m venv venv


# PowerShell এক্সিকিউশন পলিসি বাইপাস করে এক্টিভেট করা

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

.\venv\Scripts\Activate.ps1

টার্মিনালের শুরুতে (venv) লেখা আসলে বুঝবেন এনভায়রনমেন্ট সক্রিয় হয়েছে।


ধাপ ৩: Django ইন্সটল ও প্রজেক্ট সেটআপ

PowerShell

pip install django

django-admin startproject config .

টিপ: শেষে একটি ডট (.) দেওয়া হয়েছে যাতে ফোল্ডারের ভেতর অপ্রয়োজনীয় ডুপ্লিকেট ফোল্ডার তৈরি না হয়ে সরাসরি রুট ডিরেক্টরিতে প্রজেক্টের কোর ফাইল তৈরি হয়। এটি VPS বা প্রোডাকশন সার্ভারে কাজ করার জন্য বেস্ট প্র্যাকটিস।


ধাপ ৪: নতুন অ্যাপ তৈরি ও রেজিস্টার করা

ওয়েবসাইটের ৩টি পেজ পরিচালনার জন্য pages নামে একটি অ্যাপ তৈরি করুন:


PowerShell

python manage.py startapp pages

এখন config/settings.py ফাইলটি ওপেন করুন এবং INSTALLED_APPS লিস্টে 'pages', যোগ করুন:


Python

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    

    # আপনার কাস্টম অ্যাপ

    'pages',

]

ধাপ ৫: টেমপ্লেট কাঠামো তৈরি (Base & 3 Pages)

pages ফোল্ডারের ভেতর templates ফোল্ডার এবং তার ভেতর আবার pages ফোল্ডার তৈরি করুন। পাথটি দেখতে এমন হবে: pages/templates/pages/


PowerShell দিয়ে সরাসরি ফোল্ডার বানাতে পারেন:


PowerShell

mkdir pages\templates\pages

১. pages/templates/pages/base.html

(এটি মূল লেআউট। যেকোনো ই-কমার্স বা এডুকেশন সাইটে হেডার, ফুটার এবং ন্যাভবার বারবার না লিখে টেমপ্লেট ইনহেরিটেন্স ব্যবহার করা হয়।)


HTML

<!DOCTYPE html>

<html lang="bn">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>{% block title %}EduCore{% endblock %}</title>

    <!-- আধুনিক লুকের জন্য Bootstrap 5 CDN -->

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">

</head>

<body class="bg-light d-flex flex-column min-vh-100">


    <!-- Navbar -->

    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">

        <div class="container">

            <a class="navbar-brand fw-bold" href="{% url 'home' %}">EduCore</a>

            <div class="navbar-nav ms-auto">

                <a class="nav-link" href="{% url 'home' %}">Home</a>

                <a class="nav-link" href="{% url 'courses' %}">Courses</a>

                <a class="nav-link" href="{% url 'contact' %}">Contact</a>

            </div>

        </div>

    </nav>


    <!-- Main Content Dynamic Block -->

    <main class="container my-5 flex-grow-1">

        {% block content %}

        <!-- চাইল্ড টেমপ্লেটগুলোর কনটেন্ট এখানে বসবে -->

        {% endblock %}

    </main>


    <!-- Footer -->

    <footer class="bg-dark text-white text-center py-3">

        <p class="mb-0">© 2026 EduCore — Educational & E-Commerce Ready Platform</p>

    </footer>


</body>

</html>

২. pages/templates/pages/home.html (১ম পেজ)

HTML

{% extends 'pages/base.html' %}


{% block title %}Home | EduCore{% endblock %}


{% block content %}

<div class="p-5 mb-4 bg-white rounded-3 shadow-sm text-center">

    <h1 class="display-5 fw-bold text-primary">ভবিষ্যতের লার্নিং ও শপিং প্ল্যাটফর্ম</h1>

    <p class="lead mt-3">Django MVT আর্কিটেকচার দিয়ে তৈরি ৩ পেজের স্কেলেবল ওয়েবসাইট।</p>

    <a href="{% url 'courses' %}" class="btn btn-primary btn-lg mt-2">কোর্স ও প্রোডাক্ট দেখুন</a>

</div>

{% endblock %}

৩. pages/templates/pages/courses.html (২য় পেজ)

HTML

{% extends 'pages/base.html' %}


{% block title %}Courses & Store | EduCore{% endblock %}


{% block content %}

<h2 class="fw-bold mb-4">আমাদের কোর্স ও স্টাডি ম্যাটেরিয়ালস</h2>

<div class="row g-4">

    <div class="col-md-4">

        <div class="card h-100 shadow-sm">

            <div class="card-body">

                <h5 class="card-title">Django Fundamentals</h5>

                <p class="card-text">শূন্য থেকে ফুলস্ট্যাক ও VPS ডিপ্লয়মেন্ট মাস্টারি।</p>

                <span class="badge bg-success">Education</span>

            </div>

        </div>

    </div>

    <div class="col-md-4">

        <div class="card h-100 shadow-sm">

            <div class="card-body">

                <h5 class="card-title">E-Commerce Architecture</h5>

                <p class="card-text">কার্ট সিস্টেম, পেমেন্ট গেটওয়ে ও ডাটাবেজ অপটিমাইজেশন।</p>

                <span class="badge bg-warning text-dark">E-Commerce</span>

            </div>

        </div>

    </div>

    <div class="col-md-4">

        <div class="card h-100 shadow-sm">

            <div class="card-body">

                <h5 class="card-title">Python Data Mastery</h5>

                <p class="card-text">ডেভেলপারদের জন্য ডাটা ও অটোমেশন গাইড।</p>

                <span class="badge bg-info text-dark">Tutorial</span>

            </div>

        </div>

    </div>

</div>

{% endblock %}

৪. pages/templates/pages/contact.html (৩য় পেজ)

HTML

{% extends 'pages/base.html' %}


{% block title %}Contact Us | EduCore{% endblock %}


{% block content %}

<div class="row justify-content-center">

    <div class="col-md-6 bg-white p-4 rounded-3 shadow-sm">

        <h3 class="fw-bold mb-3">যোগাযোগ করুন</h3>

        <form>

            <div class="mb-3">

                <label class="form-label">আপনার নাম</label>

                <input type="text" class="form-control" placeholder="নাম লিখুন">

            </div>

            <div class="mb-3">

                <label class="form-label">ইমেইল</label>

                <input type="email" class="form-control" placeholder="name@example.com">

            </div>

            <div class="mb-3">

                <label class="form-label">মেসেজ</label>

                <textarea class="form-control" rows="3" placeholder="আপনার প্রশ্ন বা মতামত"></textarea>

            </div>

            <button type="button" class="btn btn-dark w-100">মেসেজ পাঠান</button>

        </form>

    </div>

</div>

{% endblock %}

ধাপ ৬: ভিউ তৈরি করা (Views)

pages/views.py ফাইলটি ওপেন করে পেজগুলোর লজিক ডিফাইন করুন:


Python

from django.shortcuts import render


# Home Page View

def home_view(request):

    return render(request, 'pages/home.html')


# Courses / Products View

def courses_view(request):

    return render(request, 'pages/courses.html')


# Contact Page View

def contact_view(request):

    return render(request, 'pages/contact.html')

ব্যাখ্যা: render() ফাংশন ব্রাউজারের HTTP Request গ্রহণ করে নির্দিষ্ট HTML টেমপ্লেটকে রেন্ডার করে ক্লায়েন্টের কাছে পাঠায়।


ধাপ ৭: রাউটিং ও URL ম্যাপিং

১. pages/urls.py ফাইল তৈরি

pages ফোল্ডারের ভেতর একটি নতুন ফাইল তৈরি করুন নাম দিন urls.py:


Python

from django.urls import path

from . import views


urlpatterns = [

    path('', views.home_view, name='home'),

    path('courses/', views.courses_view, name='courses'),

    path('contact/', views.contact_view, name='contact'),

]

২. মেইন config/urls.py ফাইলে অ্যাপের রুট যুক্ত করা

config/urls.py ফাইলটি ওপেন করুন এবং include ব্যবহার করে pages.urls কানেক্ট করুন:


Python

from django.contrib import admin

from django.urls import path, include


urlpatterns = [

    path('admin/', admin.site.urls),

    path('', include('pages.urls')), # রুট ডিরেক্টরিতে pages অ্যাপ যুক্ত করা হলো

]

ধাপ ৮: ডাটাবেজ মাইগ্রেশন ও সার্ভার রান

PowerShell টার্মিনালে নিচের দুটি কমান্ড চালান:


PowerShell

python manage.py migrate

python manage.py runserver

এখন যেকোনো ব্রাউজারে গিয়ে ভিজিট করুন:

[http://127.0.0.1:8000/](http://127.0.0.1:8000/)


প্রতিটি মেনুবারে (Home, Courses, Contact) ক্লিক করে ৩টি পেজই টেস্ট করে দেখুন। সার্ভার বন্ধ করতে চাইলে টার্মিনালে Ctrl + C চাপুন।



Post a Comment

0 Comments

Post a Comment (0)