Page Nav

HIDE

Recent Post:

latest

Django Custom Admin Panel in Bangla

পূর্বের টিউটরিয়্যালে আমরা Django এর Default Admin Panel টি Run করেছিলাম। Admin Site এ Super User একাউন্ট ব্যবহার করে Login করার পর আ...

পূর্বের টিউটরিয়্যালে আমরা Django এর Default Admin Panelটি Run করেছিলাম। Admin Site এ Super User একাউন্ট ব্যবহার করে Login করার পর আমরা নিচের ছবির মত একটি Interace পেয়েছিলাম।

Django-Admin-Login-Sucessfully

এবং তোমরা হয়তো লক্ষ্য করেছিলে সেখানে Authentication and Authorization নামক App এর অধিনে Groups এবং Users নামক দুইটি মেনু ছিলো। এই মেনু গুলো পাশে Add এবং Change নামক দুইটি অপশন ছিলো। প্রয়োজন অনুসারে পর্যায়ক্রমে এই দুইটি মেনু এবং তাদের Add এবং Change সম্পর্কে আমরা পরবর্তীতে বিস্তারিত আলোচনা করবো।

আজ আমরা Authentication and Authorization এর মতই নিজেদের পছন্দমত একটি App তৈরি করবো। পাশাপাশি সেখানে আমরা নতুন ডেটা যুক্ত করা, ডিসপ্লে করা এবং ডিলিট করার মত কাজ গুলো করবো।

চলো তাহলে শুরু করা যাক...


ধাপ-১: 

Creating a New App

Django এর প্রত্যেকটি web application কে এক-একটি App বলা হয়। যেমন Home Page, About Us, Contact Us এই সকল পেইজ পৃথক পৃথক App এর অধিনে পরিচালিত হয়ে থাকে। একই ভাবে members database গুলোও কে App হিসাবে বিবেচনা করা হয়।

আমরা যেহেতু Admin Panel এ এখন একটু Menu যুক্ত করতে চাচ্ছি তাই আমাদের members database নিজে কাজ করতে হবে। অর্থাৎ আমাদের একটু নতুন App তৈরি করতে হবে। আমি এখানে আমাদের নতুন App টির জন্য app_CustomAdmin নাম ব্যবহার করছি। তুমি তোমার পছন্দমত যেকোন নাম ব্যবহার করতে পারো।

app_CustomAdmin নামক নতুন App তৈরি করতে django-admin startapp app_CustomAdmin কমান্ডটি চালু করো।

Django-Create-a-New-App-CustomAdmin

VSCode এর Explorer এ লক্ষ্য করলে দেখবে app_CustomAdmin নামে নতুন একটি App তৈরি হয়ে গিয়েছে।


ধাপ-২: 

Creating Database Models

ধরো আমারা কিছু ইলেকট্রনিক সেন্সরের ডেটা ডেটাবেইজে Write করতে চাচ্ছি। যেখানে বিভিন্ন সেন্সরের নাম এবং ডেটা থাকবে। অর্থাৎ আমরা Sensor datas নামে একটি Table তৈরি করবো। যেখানে Title এবং Data নামক দুইটি Column থাকবে। এই Title Field এ আমরা সেন্সরের নাম এবং Data Field এ সেন্সরের Value রাখবো।

এ জন্য আমাদের app_CustomAdmin নামক App টির models.py ফাইলে একটি Model তৈরির মাধ্যমে Title এবং Data নামক দুইটি Variable এবং তাদের Data Type গুলো নির্ধারণ করে দিবো।

Create-Your-Models-Here

Model-Created-sensorData

এখন আমাদের তৈরি করা Model টিকে Register করতে হবে।

ধাপ-৩: 

Registering Models

Models Register করার জন্য আমাদের admin.py ফাইলে মডিফাই করতে হবে।

Register-Your-Models-Here

এখানে আমরা আমাদের sensorData নামক Model কে Register করে নিবো।

Register-Your-Models-Here-Done

ধাপ-৪: 

Applicatoin Definition

এই পর্যায়ে তোমাকে Main Project Folder এর Settings.py এ এসে INSTALLED_APPS লিষ্টে আমাদের নতুন App এর নাম লিষ্টে যুক্ত করে দিতে হবে।

Installed-Apps-Default-Stage

Installed-Apps-Default-Stage


ধাপ-৫: 

Migrations

ডেটাবেইজে যে কোন ধরণের পরিবর্তন ঘটলে (প্রত্যেকবার) সর্বপ্রথম তোমাকে Migrations এর পরবর্তীতে Migrate করতে হবে।

Database Migrations এর জন্য python manage.py makemigrations কমান্ডটি Run করতে হবে।

MakeMigrations-appCustomAdmin

Database Migrate এর জন্য python manage.py migrate কমান্ডটি Run করতে হবে।

Migrate-appCustomAdmin

ধাপ-৬: 

Let's Check It

তথ্য গুলো ডেটাবেইজে Add হয়েছে কি না - দেখার জন্য চলো Server চালু করি এবং Django administration পেইজটিকে Refresh দেই।

Run-Server-Again

লক্ষ্য করে দেখ - AUTHENTICATION AND AUTHORIZATION এর উপরের দিকে আমাদের নতুন অ্যাপ APP_CUSTOMADMIN চলে এসেছে এবং Sensor datas নামক মেনু যুক্ত হয়ে গিয়েছে।

Sensor-Data-on-Django-Administration

ধাপ-৭: 

Add Sensor Data

তুমি যদি Sensor datas এর উপর ক্লিক করো, তাহলে নিচের মত একটি Interface দেখতে পাবে।

Clicked-Sensor-datas

এখান থেকে ADD SENSOR DATA বাটনে ক্লিক করার মাধ্যমে তুমি Manually ডেটাবেজে ডেটা Insert করতে পারবে। ADD SENSOR DATA বাটনে ক্লিক করলে তুমি নিচের মত একটি Interface পাবে।

Add-Sensor-Data-DS18B20

মনোযোগ দিয়েই দেখতে পাবে আমরা যে Title এবং Data নামক দুইটি Table Column যুক্ত করেছিলাম, সেই Field গুলো Show করছে। বিষয়টি আরো পরিষ্কার করার জন্য আমি এখানে Title হিসাবে DS18B20 (একটি Temperature Sensor এর নাম) এবং Data হিসাবে 548 (সেন্সরটির Analog মান) লিখে Save and add another বাটনে ক্লিক করছি।

Add-Sensor-Data-LM35

ফলে পূর্বের ডেটা SAVE হয়েছে এবং নতুন সেন্সরের ডেটা ইনপুট দেওয়ার জন্য আবার নতুন Field চলে এসেছে। এখানে আমি অন্য একটি সেন্সরের জন্য Title হিসাবে LM35 (একটি Temperature Sensor এর নাম) এবং Data হিসাবে 429 (সেন্সরটির Analog মান) লিখে SAVE বাটনে ক্লিক করছি।

Show-all-Sensor-datas

এখন আমরা আমাদের Sensor datas নামক Table এর সকল ডেটা গুলো দেখতে পাচ্ছি। কিন্তু লক্ষ্য করলে দেখবে, এখানে SENSOR DATA নামক Column এ sensorData object (x) আকারে দেখাচ্ছে। কিন্তু এখানে যদি Title গুলো দেখা যেত, তাহলে আমাদের জন্য বুঝতে সুবিধা হতো যে - এটি কোন সেন্সরের ডেটা।

এই কাজটি করতে হলে আমাদের models.py ফাইলটিতে সামান্য একটু পরিবর্তন আনতে হবে।


ধাপ-৮: 

Dot Str Method

আমাদের Model এর Title রিটার্ন করার জন্য আমরা dot str method এর সাহায্য নিবো।

Dot-STR-Method-Represents-Class-Objects-as-String

এখন যদি তুমি Django administration পেইজটি Refresh দাও, তাহলেই দেখতে পাবে এখন Sensor datas নামক Table এ Title গুলো Show করবে

Sensor-datas-Shows-as-Title-Text

ইচ্ছা করলে, তুমি এগুলো Select করে Action মেনুর মাধ্যমে Delete ও করতে পারবে।

যদিও এখানে আমরা Database এ Manually ডেটা ইনপুট দিয়েছি! কিন্তু এটি আমাদের মূল উদ্দেশ্য নয়! ওয়েবসাইটে ডেটা বিভিন্ন ভাবেই আসতে পারে। এই ডেটা গুলো Pick করে নিজের Database এ সংরক্ষণ করার জন্য এটি একটি পদ্ধতি মাত্র।

তোমার নিজের তৈরি ওয়েবাইটের ডেটাবেইজে ডেটা Write করার এই নতুন অনুভুতি কমেন্টে শেয়ার করতে ভূলোনা!

No comments