মডিউল ১.৪ : জ্যাংগো প্রজেক্ট স্ট্রাকচার
আজকে আমরা জ্যাংগো প্রজেক্ট এর ফাইল গুলা সম্পর্কে ডিটেলস এ জানবো
Project vs App
আজকে আমরা django এর প্রজেক্ট স্ট্রাকচার সম্পর্কে জানবো। একটা প্রজেক্ট হচ্ছে একটা সিস্টেম যার মধ্যে ছোটো ছোটো বিভিন্ন পার্ট বা ফিচার আছে। যেমন ধরো একটা স্কুল ম্যানেজমেন্ট সফটওয়্যার আছে সেখানে এই টোটাল সিস্টেম কে আমরা বলি প্রজেক্ট আর এই সিস্টেম এর মধ্যে স্টুডেন্ট, টিচার, কোর্স, ফিস, রেজাল্ট এর মত ছোটো ছোটো বিভিন্ন ফিচার আছে যেগুলো কে আমরা বলি app। তার মানে বুঝলাম যে অনেক গুলা ছোটো ছোটো অ্যাপ মিলেই একটা প্রজেক্ট তৈরী হয় আর বুঝতেই পারতেছ একটা বড়ো প্রজেক্ট কে এভাবে ছোটো ছোটো পার্ট এ ভাগ করলে সেটা manage করাও অনেক ইজি হয় ।
Django তে একটা প্রজেক্ট আর app create করার জন্যে নিচের কমান্ড ইউজ করি আমরা

django-admin startproject school_management
school_management নামে একটা প্রজেক্ট তৈরী করলাম
cd school_management
আমরা cd দিয়ে প্রজেক্ট এর মধ্যে গেলাম।
django-admin startapp result
অবশ্যই প্রজেক্ট ফোল্ডার এর মধ্যেই আমাদেরকে app তৈরী করতে হবে । এই কমান্ড দিয়ে আমরা result নামে একটা app তৈরী করলাম

প্রজেক্ট ফোল্ডার স্ট্রাকচার :
Project আর App এর মধ্যে আলাদা টাইপ কিছু ফাইল থাকে। আমরা আস্তে ধীরে সেগুলার ডিটেইলস জানবো। এখন আপাতত দেখার চেষ্টা করবো কি কি ফাইল থাকে আমাদের প্রজেক্ট আর অ্যাপ এর মধ্যে আর তাদের সম্পর্কে হালকা করে জানবো।
Project Folder Structure :

manage.py
:
manage.py
: প্রজেক্ট বা app তৈরী করা বা প্রজেক্ট কে রান করতে এর হেল্প নিতে হয়
first_project
:
__init__.py
: পাইথন এর কোনো ফোল্ডার এ এই ফাইল টি থাকলে পাইথন সেটাকে একটা প্যাকেজ হিসেবে চিন্তা করে
wsgi.py
:WSGI (Web Server Gateway Interface) is a specification that describes how a web server communicates with web applications, এটা বোঝায় যে কিভাবে ওয়েব এপ্লিকেশন আর সার্ভার এর মধ্যে কমিউনিকেশন হবে, synchronous স্টাইল ফলো করে
asgi.py
: Asynchronous Server Gateway Interface. ASGI provides standard for both
asynchronous and synchronous
settings.py :
একটা প্রজেক্ট এর প্রাণ বলা হয় তাকে কারণ একটা প্রজেক্ট এর সমস্ত কিছু সে হোল্ড করে যেমন : Database Config information, Template, Installed Application, Validators etc.
urls.py :
একটা ওয়েব প্রজেক্ট এর যত গুলা ইউআরএল থাকে সেগুলার কাজ এখানে করা হয়
App Structure :

migrations
ডাটাবেস এ যত ফাইল আমরা তৈরী করবো, চেঞ্জ বা আপডেট করবো তার হিস্ট্রি ট্র্যাক করে রাখে
__init__.py
পাইথন এর কোনো ফোল্ডার এ এই ফাইল টি থাকলে পাইথন সেটাকে একটা প্যাকেজ হিসেবে চিন্তা করে
admin.py
অ্যাডমিন প্যানেল এ কোনো একটা App কে রেজিস্টার করতে হেল্প করে
apps.py
app এর কনফিগারেশন এর ডাটা স্টোর করে রাখে
models.py
ডাটাবেস এ কোনো টেবিল তৈরী করতে হেল্প করে
tests.py
App এর টেস্টিং এর কোড লিখতে হেল্প করে
views.py
রিকোয়েস্ট এর রেস্পেক্ট এ রেসপন্স দিতে হেল্প করে
Last updated