1. Home
  2. Attendance Management Sys...
  3. Backend
  4. Django প্রজেক্ট তৈরি এবং লাইব্রেরি ইনস্টলেশন

Django প্রজেক্ট তৈরি এবং লাইব্রেরি ইনস্টলেশন

স্টেপ ১: Django প্রজেক্ট তৈরি এবং লাইব্রেরি ইনস্টলেশন

প্রথমে, আমরা Django প্রজেক্ট তৈরি করবো এবং প্রয়োজনীয় লাইব্রেরি ইনস্টল করবো।

১. ভার্চুয়াল এনভায়রনমেন্ট তৈরি এবং এক্টিভেট করা

প্রথমে একটি নতুন ডিরেক্টরি তৈরি করুন এবং সেখানে ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন। ভার্চুয়াল এনভায়রনমেন্ট Django এবং অন্যান্য প্রয়োজনীয় লাইব্রেরি আলাদা রাখতে সাহায্য করে।

টার্মিনালে লিখুন:
# প্রজেক্ট ডিরেক্টরি তৈরি
mkdir DjangoRestApiProject 
cd DjangoRestApiProject 

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

# ভার্চুয়াল এনভায়রনমেন্ট এক্টিভেট করা
# উইন্ডোজের জন্য:
venv\Scripts\activate
# লিনাক্স / ম্যাকOS এর জন্য:
source venv/bin/activate

২. Django এবং প্রয়োজনীয় লাইব্রেরি ইনস্টল করা

এখন Django এবং অন্যান্য প্রয়োজনীয় লাইব্রেরি ইনস্টল করবো।

টার্মিনালে লিখুন:
# Django ইনস্টল করা
pip install django

# Django Rest Framework (DRF) ইনস্টল করা
pip install djangorestframework

# Djoser ইনস্টল করা (কাস্টম ইউজার ম্যানেজমেন্টের জন্য)
pip install djoser

# Simple JWT ইনস্টল করা (Token-based Authentication)
pip install djangorestframework-simplejwt

# Social Authentication এর জন্য প্রয়োজনীয় লাইব্রেরি ইনস্টল
pip install social-auth-app-django

# DRF YASG (Swagger) ইনস্টল করা API ডকুমেন্টেশনের জন্য
pip install drf-yasg

# CORS Headers ইনস্টল করা (Cross-Origin Resource Sharing ব্যবস্থাপনার জন্য)
pip install django-cors-headers

৩. Django প্রজেক্ট তৈরি করা

এখন আমরা আমাদের Django প্রজেক্টটি তৈরি করবো।

টার্মিনালে লিখুন:
# Django প্রজেক্ট তৈরি
django-admin startproject RestApiProject .

প্রয়োজনীয় সেটিংস আপডেট করা

এখন আমরা settings.py ফাইলে প্রয়োজনীয় কনফিগারেশনগুলি করবো।

INSTALLED_APPS এ অ্যাপ্লিকেশন ও লাইব্রেরিগুলো যোগ করা:
# ইনস্টল করা অ্যাপ্লিকেশন যোগ করুন
INSTALLED_APPS = [
    ...
    'corsheaders',  # CORS ব্যবস্থাপনার জন্য
    'rest_framework',  # Django Rest Framework
    'rest_framework_simplejwt',  # JWT Token Authentication
    'drf_yasg',  # API ডকুমেন্টেশনের জন্য Swagger
    'djoser',  # Djoser কাস্টম ইউজার ম্যানেজমেন্টের জন্য
]

মিডলওয়্যার এ CORS যুক্ত করা:

# RestApiProject/settings.py

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',  # CORS Middleware
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',

]

Django REST Framework এবং JWT কনফিগারেশন করা:

# RestApiProject/settings.py

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',  # সব API-তে অটেনটিকেশন আবশ্যক
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',  # JWT টোকেন ব্যবহৃত হবে
        'rest_framework.authentication.SessionAuthentication',  # সেশন ব্যবহৃত হবে
    ),
}

# JWT Token-এর সময়সীমা নির্ধারণ
from datetime import timedelta

SIMPLE_JWT = {
    'ACCESS_TOKEN_LIFETIME': timedelta(minutes=240),  # JWT Access Token এর সময়সীমা
    'REFRESH_TOKEN_LIFETIME': timedelta(days=1),  # JWT Refresh Token এর সময়সীমা
    'ROTATE_REFRESH_TOKENS': False,
    'BLACKLIST_AFTER_ROTATION': True,
}

ইমেল কনফিগারেশন:

# RestApiProject/settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'  # SMTP ব্যবহার
EMAIL_HOST = 'business39.web-hosting.com'  # আপনার SMTP সার্ভারের ঠিকানা
EMAIL_PORT = 465  # SSL এর জন্য পোর্ট
EMAIL_USE_SSL = True  # SSL এনক্রিপশন সক্রিয়
EMAIL_HOST_USER = 'admin@kreatech.ca'  # আপনার ইমেল অ্যাড্রেস
EMAIL_HOST_PASSWORD = 'admin@kreatech'  # ইমেলের পাসওয়ার্ড
DEFAULT_FROM_EMAIL = 'admin@kreatech.ca'  # ডিফল্ট প্রেরক ইমেল

CORS কনফিগারেশন:

# RestApiProject/settings.py

CORS_ALLOW_ALL_ORIGINS = True  # সব উত্সকে অনুমতি দেওয়া
# CORS_ALLOWED_ORIGINS = [

# 'http://127.0.0.1:4000',

# ] # Add other allowed origins as needed

URL কনফিগারেশন

এখন আমাদের প্রজেক্টের URL কনফিগার করতে হবে।

RestApiProject/urls.py ফাইলের কনফিগারেশন:
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path, re_path, include
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
from rest_framework import permissions

# Swagger API ডকুমেন্টেশন সেটআপ
schema_view = get_schema_view(
   openapi.Info(
      title="Accounting Finance API",
      default_version='v1',
      description="How To Use API",
      terms_of_service="https://www.kreatech.ca/terms/",
      contact=openapi.Contact(email="rebelsoft111122@gmail.com"),
      license=openapi.License(name="BSD License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^auth/', include('djoser.urls')),  # Djoser URL
    re_path(r'^auth/', include('djoser.urls.jwt')),  # Djoser JWT URL
    re_path(r'^auth/', include('social_django.urls', namespace='social')),  # Social Auth URL
    re_path(r'^docs/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),  # Swagger
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

জ্যাঙ্গো প্রজেক্ট ডেভেলপমেন্ট সার্ভার চালু করে চালিয়ে দেখি

How can we help?