Django Apps
Django-তে "App" হলো একটি ছোট এবং স্বয়ংসম্পূর্ণ মডিউল যা নির্দিষ্ট কোনো কাজ করার জন্য তৈরি করা হয়।
১. Django App Concept
Django একটি প্রজেক্টকে অনেকগুলো ছোট ছোট অ্যাপে ভাগ করে কাজ করার সুবিধা দেয়। যেমন একটি ওয়েবসাইট প্রজেক্টে:
- Users App: ইউজার রেজিস্ট্রেশন এবং লগইন হ্যান্ডেল করবে।
- Blog App: ব্লগ পোস্ট এবং কমেন্ট হ্যান্ডেল করবে।
- Payments App: পেমেন্ট গেটওয়ে হ্যান্ডেল করবে।
এইভাবে আলাদা আলাদা অ্যাপ ব্যবহার করলে কোড ম্যানেজ করা সহজ হয় এবং আপনি চাইলে এক প্রজেক্টের অ্যাপ অন্য প্রজেক্টে সহজেই ব্যবহার করতে পারেন।
২. App vs Project (পার্থক্য)
অনেকেই এই দুটির মধ্যে গুলিয়ে ফেলেন:
- Project: এটি হলো আপনার পুরো ওয়েবসাইট বা অ্যাপ্লিকেশন। এতে অনেকগুলো অ্যাপ এবং গ্লোবাল কনফিগারেশন থাকে।
- App: এটি হলো প্রজেক্টের একটি ছোট অংশ যা নির্দিষ্ট একটি কাজ করে।
NOTE
একটি প্রজেক্টে একাধিক অ্যাপ থাকতে পারে, আবার একটি অ্যাপ একাধিক প্রজেক্টে ব্যবহার করা যেতে পারে।
৩. অ্যাপ তৈরি করা (Creating Apps)
টার্মিনালে নিচের কমান্ডটি লিখুন:
python manage.py startapp blogএটি blog নামে একটি ফোল্ডার তৈরি করবে যাতে অ্যাপের সব ফাইল থাকবে।
৪. Django App Structure
একটি নতুন অ্যাপ তৈরি করলে আপনি নিচের ফাইলগুলো দেখতে পাবেন:
- models.py: এখানে আপনার ডাটাবেস ডিজাইন বা টেবিলগুলো ডিফাইন করা হয়।
- views.py: এখানে বিজনেস লজিক লেখা হয় (ইউজার কী দেখবে তা এখানে ঠিক হয়)।
- admin.py: এই অ্যাপের মডেলগুলোকে এডমিন প্যানেলে দেখানোর জন্য এখানে রেজিস্টার করা হয়।
- apps.py: এই অ্যাপটির নিজস্ব কনফিগারেশন এখানে থাকে।
- tests.py: অ্যাপের কোড টেস্ট করার জন্য এখানে টেস্ট কেস লেখা হয়।
- urls.py (Manual): সাধারণত অ্যাপ তৈরি করলে এই ফাইলটি থাকে না, এটি আপনাকে ম্যানুয়ালি তৈরি করে নিতে হয় রাউটিংয়ের জন্য।
৫. অ্যাপ রেজিস্টার করা (Installed Apps)
অ্যাপ তৈরি করার পর সেটিকে আপনার প্রজেক্টের সাথে কানেক্ট করতে হবে। এর জন্য settings.py ফাইলের INSTALLED_APPS লিস্টে আপনার অ্যাপের নাম যোগ করুন:
# settings.py
INSTALLED_APPS = [
...
'blog', # আপনার নতুন অ্যাপের নাম
]৬. App Naming Conventions
- অ্যাপের নাম সবসময় Lowercase (ছোট হাতের অক্ষর) হওয়া উচিত।
- নাম হিসেবে Plural (বহুবচন) ব্যবহার করা ভালো (যেমন:
posts,users,products) তবে অনেকে singular ও ব্যবহার করেন। - নামের মাঝে স্পেস দেওয়া যাবে না, প্রয়োজনে আন্ডারস্কোর (_) ব্যবহার করা যেতে পারে।
৭. Reusable Apps
Django-র অন্যতম শক্তি হলো এর রিইউজেবল অ্যাপস। আপনার তৈরি করা একটি অ্যাপ যদি আপনি এমনভাবে লেখেন যাতে সেটি অন্য কোনো কনফিগারেশনের ওপর নির্ভর না করে, তবে আপনি সহজেই সেই ফোল্ডারটি কপি করে অন্য প্রজেক্টে নিয়ে কাজ করতে পারবেন।
পরবর্তী ধাপ
অভিনন্দন! আপনি Django অ্যাপ সম্পর্কে বিস্তারিত জেনেছেন। পরবর্তী চ্যাপ্টারে আমরা শিখবো URLs and Routing সম্পর্কে।