01 জ্যাংগো কি? কেন শিখব ও কি কি শিখব,যেভাবে শিখব (বিস্তারিত জানুন)
আসসালামু আলাইকুম। হ্যালো সবাইকে, আমি আশরাফুল আলম পরাগ। ইতিমধ্যে আমি জ্যাংগো শেখা শুরু করে দিয়েছি, তাই আমি যা শিখব, তা যথাসাধ্য আপনাদের সাথে শেয়ার করার চেষ্টা করব।
জ্যাংগো বর্তমানে খুবই জনপ্রিয়। এটি একটি পাইথন ভিত্তিক ওপেন সোর্স, হাই লেভেল ফ্রেমওয়ার্ক যা পরিচ্ছন্ন ও ব্যবহার উপযোগী ডিজাইন তৈরিতে সহায়তা করে। অন্যান্য ফ্রেমওয়ার্ক এর মতই জ্যাঙ্গো দিয়ে খুব দ্রুত এবং তুলনামূলক কম কোড লিখে ভালো মানের ওয়েব অ্যাপ ডেভেলপ করা যায়।
Django কি?
জ্যাংগো: পাইথনের বিভিন্ন ফ্রেমওয়ার্কের মধ্যে রয়েছে, যেমন- django, Flask, CherryPy, TurboGears, Web2Py, Pyramid ইত্যাদি। পাইথনের এত্ত এত্ত ফ্রেমওয়ার্কের মধ্যে, যে ফ্রেমওয়ার্কের মাধ্যমে ওয়েব ডেভেলপমেন্ট, ওয়েব অ্যাপ্লিকেশন তৈরি করা হয় সেটি-ই হল জ্যাংগো। অর্থাৎ, এটি একটি ওয়েবফ্রেমওয়ার্ক।
আপনি যখন কোন ওয়েব সাইট তৈরী করতে যাবেন তখন দেখবেন ওয়েবসাইট বা ওয়েবঅ্যাপ এর মধ্যে কিছু জিনিস সব সময়ই কমন থাকে, এসব ইলিমেন্টগুলো যেমন সাইন-ইন/সাইন-আউট, রেজিস্ট্রেশন/লগিন সিস্টেম তৈরি, ফর্ম, ফাইল আপলোড সিস্টেম, সিকিউরিটি ফিচার, এডমিন প্যানেল, ডাটাবেইজ এর সাথে সংযোগ ইত্যাদি। ওয়েবফ্রেমওয়ার্ক হল এমন সফওয়ার বা অ্যাপ্লিকেশন যেটাতে এ সকল কমন বিষয়েগুলো বিল্টইন থাকে, তাই ফ্রেমওয়ার্ক ব্যবহার করলে একই কোড বার বার লিখতে হয়না, সময় এবং মাথার ঘাম দুটোই বেঁচে যায়! আমাদের কাজ শুধু প্রয়োজনীয় ফ্রেমওয়ার্কটা নিজেদের প্রোজেক্টে ব্যবহার করা।
আরো সহজ ভাবে ব্যাখ্যা করতেছি-ফ্রেমওয়ার্ক: ফ্রেমওয়ার্কে আপনার প্রয়োজনীয় উপাদান গুলা আগে থেকেই তৈরী থাকবে। আপনি আপনার প্রয়োজন মত ফাংশন বা ক্লাসকে কল করে ব্যবহার করতে পারেন ।
প্রশ্ন: django ফ্রেমওয়ার্ক বলতে কি বোঝায়? বিস্তারিত
উদাহরণস্বরূপ,- একটি ইটের ভাটায় যত শ্রমিক-ই কাজ করুক না কেন তাদের বানানো সবগুলো ইটের সাইজ একই রকম হয়, তারা যতজন লোকই ইট বানানোর কাজ করুক না কেন, তাদের হাতে একটা ফ্রেম ধরিয়ে দেওয়া হয়, যেটা দিয়ে তারা মাটি দিয়ে একই শেপে/আকারে সবগুলো ইট তৈরি করে। এই ফ্রেম থেকেই ফ্রেমওয়ার্ক ধারণা পেয়ে গেছ আশা করি।
আরও একটি উদাহরণ হচ্ছে,- গ্রামের বাড়িতে নারকেলের মজার পিঠাগুলো একটা ছাচের মাধ্যমে তৈরি করা হয়, যার কারণে সবগুলো পিঠা দেখতে একই রকমের হয়ে থাকে। এক্ষেত্রে এই ছাচ যেটাকে আমরা ফ্রেম বা ফ্রেমওয়ার্ক বলতে পারি।
এ থেকে বুঝলাম- একটা ফ্রেম বা ফ্রেমওয়ার্ক হচ্ছে একটা রেডিমেট স্ট্রাকচার, যেখানে আগ থেকে সব রেডি করা থাকে। যার ফলে এটা ইইজ করা অনেক সহজ হয়। তাছাড়া এটা মনের মত করে আগ থেকে রেডি করা হয় বিধায় নানা বৈশিষ্ট্য ও সুবিধাসম্পন্ন হয়ে থাকে।
ঠিক তেমনিভাবে, জ্যাংগো-টাও হচ্ছে পাইথনের একটা ফ্রেমওয়ার্ক, যা পরিচ্ছন্ন ও ব্যবহার উপযোগী ডিজাইন তৈরিতে সহায়তা করে, যার মাধ্যমে খুব সহজে ওয়েবসাইট তৈরি করা হয়। আর এসব ওয়েবসাইট এর সিকিউরিটি অনেক স্ট্রং হয় ও অনেক দ্রুতগতির লোডিং স্পিড হয়ে থাকে। তাছাড়া, জ্যাংগোতে আর্টিফিশিয়াল ইন্টেলিজেন্স(Ai) প্রয়োহ করা যায়। যার কারণে এটা বেশ জনপ্রিয়তা লাভ করে।
যারা মেশিনলার্নিং ও ডিপলার্নিং অর্থাৎ প্রোগ্রামিং জানেন তারা বা যেকেউ জ্যাংগো ফ্রেমওয়ার্ক খুবই পছন্দ করে এর বহুবিদ ব্যবহারিক সুবিধার জন্য।
বিস্তারিতঃ জ্যাঙ্গোর ডেভেলপাররা আগে বড় বড় নিউজমিডিয়া বা পত্রিকার জন্য ওয়েবসাইট তৈরি করে দিতো। একদিন কাজ করতে গিয়ে তারা হঠাৎ করে খেয়াল করলো যে, “আরে! দৈনিক অমুক পত্রিকার ওয়েবসাইট আর দৈনিক তমুক পত্রিকার ওয়েবসাইটের কোডের প্রায় ৯০%-ই একইরকম!” অর্থাৎ, তারা নতুন নতুন ওয়েবসাইট তৈরি করতে গিয়ে বোকার মত একই কোড বার বার লিখছিল।
তখন তাদের মাথায় একটা সাংঘাতিক আইডিয়া এসে গেল! “আচ্ছা, আমরা যদি এমন একটা “জিনিস” বানাই যাতে বারবার আমাদের গাধার মত একই কোড লিখতে না হয়, একবার লিখে ফেলবো এবং দরকারমত বিভিন্ন প্রজেক্টে ওই জিনিসটা ব্যবহার করবো!” ইউরেকা! এরকম চিন্তাভাবনা থেকেই জন্ম নেয় জ্যাঙ্গো ওয়েব ফ্রেমওয়ার্কের।
ওয়েব ফ্রেমওয়ার্ককে ডিফাইন করার সবচেয়ে সহজ উপায় হল বলা যে,এটি আপনার ওয়েব ডেভেলপমেন্টের কাজকে সহজ করে দেয়।
ফ্রেমওয়ার্ক নিলে আমার লাভ কি?
নিজে কোড করে ব্লগ বানাবেন ভাব মারার পাশাপাশি আপনার বদের হাড্ডি ছোট ভাইটা ওয়ার্ডপ্রেস বা অন্য কোন সিএমএসের নিরাপত্তার দুর্বলতা জেনে ব্লগের সামনে বিশাল “হ্যাক করছি” নোটিশ যাতে না দিতে পারে।
ধরি আপনি প্লেইন পাইথন বা প্লেইন পিএইচপিতে বা অন্য কোন ভাষার কোন ওয়েব ফ্রেমওয়ার্ক ব্যবহার না করে লিখবেন। তাহলে আপনার কাজের লিস্টি মোটামুটি…
- ডাটাবেজের সঙ্গে সংযোগ দেয়া
- ডাটাবেজে SQL লিখে টেবিল তৈরি করা
- টেবিলে ডাটা
INSERT
ওUPDATE
করানোর জন্য অ্যাডমিন ইন্টারফেস (যেখানে ব্লগ পোস্ট লিখবেন, আপডেট করবেন) তৈরি করা - সাইট সুরক্ষিত রাখতে সিকিউরিটি নিশ্চিত করা;
CSRF
,XSS
… প্রটেকশন দেয়া। - ডাটাবেজের ডাটা
SELECT
করে সাইটের ভিজিটরদের জন্য সুন্দর ফ্রন্টএন্ড (সাইটের যে অংশ ভিজিটররা দেখবে) তৈরি করা
ওপরের ছয়টি কাজের প্রত্যেকটিই জ্যাঙ্গো স্বয়ংক্রিয়ভাবে করতে আপনাকে যথেষ্ট পরিমাণে সহায়তা করবে। জ্যাঙ্গোকে বলে দিন, ডাটাবেজের নাম, ঠিকানা, পোর্ট নম্বর, ইউজারনেম আর পাসওয়ার্ড – সে নিজেই কানেক্ট করে নিবে যখন প্রয়োজন। আপনার দেয়া নির্দেশনা বা প্ল্যান অনুযায়ী নিজেই ডাটাবেজের সঙ্গে যোগাযোগ করে কাজ করে টেবিল তৈরি, যাবতীয় তথ্য লেখা, পড়া বা আপডেট করার কাজ করে নেবে, স্বয়ংক্রিয়ভাবে নিরাপদ অ্যাডমিন ইন্টারফেস তৈরি করে দেবে! এই অসাধারণ ফ্রেমওয়ার্কটি ব্যবহার করে একদম কম সময়ের মধ্যে সহজেই সাংঘাতিক সব ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন!
জ্যাংগো তৈরীর ইতিহাস
১৯৯১ সালে পাইথন তৈরি করেনঃ নেদারল্যান্ডের বাসিন্দা গুইডো ভেন রু্যম(Guido Van Rossum), ইংল্যান্ডের Monty Python নামের একটি কমেডি গ্রুপ থেকে অনুপ্রাণিত হয়ে তিনি এই ল্যাংগুয়েজের নামকরণ পাইথন করেন।
এরপর, * 2003 সালে সর্বপ্রথম django তৈরি করেনঃ Adrian Holovaty & Simon Willison.
Django ব্যবহার করে বানানো হয়েছে এমন কিছু বড় বড় সাইটের উদাহরণ –
- Youtube,
- Udemy,
- Nasa,
- Instragram,
- Pinterest,
- Spotify,
- theguardian.com,
- nationalgeographic.com,
- Firefox,
- Dropbox etc.
প্রশ্ন: জনপ্রিয় নানা রকম cms যেমন Js থাকা সত্ত্বেও Django(পাইথন) কেন শিখবেন?
Django হচ্ছে one of the best plateform. কারণ-
- এটা শেখা অনেকবেশি সহজ, পাইথন দিয়ে বানানোয় অনেক পাওয়ারফুল ও ইউজফুল (Make by Python, so Easy to learn)
- এটি windows, mac, Android সব ডিভাইসে অর্থাৎ ক্রস প্লাটফর্ম সাপোর্ট করে (Cross platform supported)
- ওপেন সোর্স হওয়ার ফ্রিতে ব্যবহার করা যায় (Open Source)
- strong security
- Built in Admin UI
- Object relational mapper (Developer & Database Relation maker
- good documentation রয়েছে যার ফলে অনলাইন হতে যেকোনো সমস্যার সমধান/সাপোর্ট পাওয়া যায়।
- web application make
- (Ai based, ML, DL এর সাইট বানানো যায়
- Good Demand/Good salary
-
- Built-in Features and Models: Django has already built-in features and models which means you connect your building blocks together rather than focusing to make it from the ground up.
- Ridiculously fast: Django Framework was designed to help developers take applications from concept to completion as quickly as possible.
- Fully loaded
- Reassuringly secure
- Exceedingly scalable
- Incredibly versatile
Features of Django:
- Secure
- Complete
- Versatile
- Scalable
- Maintainable
- Portable
Applications of Django:
- Building cross-platform applications
- Scalable web applications
- Applications with multiple user roles
- Building cost-efficient MVP
- Building Content Management Systems (CMS)
- Building SaaS & Enterprise applications
- Secure E-commerce applications
- Financial platforms
- Social networking and bookmarking sites etc.
Django Pre-knowledgement/Requirements
প্রশ্ন: জ্যাংগো শেখার আগে কি কি জানা প্রয়োজন? বিস্তারিত জেনে নিই
1 Basic Python: উদাহরণস্বরূপ- বিশ্ববিদ্যালয়ে পড়তে হলে যেমন পর্যায়ক্রমে ssc, hsc পাস করে আসতে হয়, ঠিক সেভাবে django শিখতে_হলে/ শেখা শুরু করার আগে আপনাকে অবশ্যই ধারাবাহিকভাবে সবার আগে Basic Python জানা থাকা লাগবে (যেমন- syntax, functions, loops, conditional structure, tuples, lists, dictionary ইত্যাদি), কারণ জ্যাংগো হচ্ছে পাইথনের একটা ফ্রেমওয়ার্ক। hablu prrogrammer 101 python –
2 OOP: এরপর, OOP জানা থাকলে ভাল হয়(বিশেষকরে class, object, inheritance, methods ইত্যাদি OOP জানা লাগবে), কেন oop জানা লাগবে তা একটু পর আলোচনা করব।।
প্রশ্ন: আপনার মনে প্রশ্ন আসতে পারে, django তে OOP কেন লাগবে?
একটা ছোট্ট উদাহরণ দিচ্ছি তাহলে বিষয়টা বুঝতে পারবেন। উদাহরণস্বরুপ- আমাদের ওয়েবসাইট এ nav bar, footer এগুলো কমন হিসেবে থাকে। এখন কথা হচ্ছে ওয়েবসাইট এর প্রতিটি পেজের জন্য কি nav bar, footer বানাবো? উত্তর- কখনোই না, এত কষ্টের দরকার নাই; একটা পেজের জন্য nav bar, footer বানিয়ে বাকি সকল পেজের জন্য তা inheritance(OOP) করে দিলেই হল। এতে করে কোড লিখতে অনেক কম সময় লাগবে, কাজটাও সহজ হবে, কোডও অনেক বেশি ক্লিন থাকবে।
এ থেকে বুঝতেই পারছেন django তে কতবেশি অবদান রাখে, এটা কতটা গুরুত্বপূর্ণ।
3 Frontend Web Development: এরপর, ওয়েবসাইট ফ্রন্টএন্ডের বিষয়গুলো। যেমন- html, css, bootstrap, javascript জানা থাকলে আরও ভাল, কারণ django দিয়ে যেহেতু অনলাইন বেইজ ওয়েবসাইট, টুলস বানানো হবে, সেহেতু ওয়েবসাইট এর বিভিন্ন ইলিমেন্ট/পার্ট তৈরির ক্ষেত্রে এসব জানাটা অত্যাবশ্যক।
4 Database: একটা ওয়েব এপ্লিকেশনের মূলত তিনটা প্রধান অংশ থাকে যথাক্রমে- ফ্রন্টএন্ড , ব্যাকএন্ড ও ডাটাবেস।
১. ফ্রন্টএন্ড: কোন একটা ওয়েব এপ্লিকেশন ব্রাউজারে ওপেন করলে যা দেখা যায় সেটাই মূলত ফ্রন্ট এন্ড। এই ফ্রন্টএন্ড ডেভেলপ করার ব্যবহার করা হয় HTML, CSS এবং JavaScript ।
২. ব্যাকএন্ড: ব্রাউসার থেকে আসা রিকোয়েস্টগুলো প্রসেস করে ব্যাকএন্ড এবং বিভিন্ন সিদ্ধান্তও নিয়ে থাকে যেমন – কোন ইউসারকে কি দেখানো হবে, ইত্যাদি। উদাহরণ স্বরূপ বলা যখন দুই জন ইউসার একই এপ্লিকেশনে (যেমন কোরা) প্রবেশ করে তারা কিন্তু একই কনটেন্ট দেখতে পায় না। এই ব্যাকএন্ড ডেভেলপ করার জন্য অনেক অপশন আছে যেমন পাইথন (Python), জাভা (Java), সিশার্প (C#), পিএইচপি (PHP) ও ইত্যাদি। পাইথনের বেসিক যখন আপনার শেখা হয়ে গেছে তাই এখন পাইথনের যেকোনো একটা ফ্রেমওয়ার্ক শুরু করতে পারেন যেমন ফ্লাস্ক (Flask), জ্যাংগো (Django) অথবা অন্য কোনো। এই ফ্রেমওয়ার্ক কিন্তু অবশ্যই HTML, CSS এবং JavaScript শেখার পর শুরু করতে হবে। আর ঠিক এক্ষেত্রেই আমরা জ্যাংগো(Django) ইউজ করা শুরু করব, তাইতো মূলত Django শেখার জার্নি শুরু করা।
প্রশ্ন: ফ্লাস্ক না শিখে কেন জ্যাংগো শিখব? যারা ফ্লাস্ক শিখতে চান(সিদ্ধান্ত আপনার)– পাইথনের জনপ্রিয় দুইটি ওয়েব ডেভলাপমেন্টের ফ্র্য়ামওয়ার্ক- জ্যাঙ্গো ও ফ্লাস্ক । ফ্লাস্ক লাইটওয়েট ওয়েব ডেভলাপমেন্ট মাইক্রো ফ্র্যামওয়ার্ক। ওয়েবসাইট বা এপিআই বানাতে গেলে অনেক কিছুর জন্য আলাদা প্যাকেজ ইন্সটল করা লাগবে বা নিজে থেকে কোড করা লাগবে।অন্যদিকে, জ্যাঙ্গো সম্পূর্ণ তাই অনেক কিছুই আলাদা প্যাকেজ ইন্সটল করা ছাড়া করা যায়।
৩. ডাটাবেস: একটা ওয়েব এপ্লিকেশন এর সকল তথ্য জমা থাকে ডাটাবেজে। এখানেও অনেকগুলো অপশন আছে যেমন- Sql(SQLite3, MySQL,PostgreSQL, MSSQL), Oracle, Postgres ইত্যাদি। প্রথমে MySql দিয়ে শুরু করতে পারেন। এখানে মূলত আপনাকে query লেখা শিখতে হবে। তবে query লিখে এপ্লিকেশন ডেভেলপ করা এখন তেমন চলে না। লোকজন ORM বেশি ব্যবহার করে। পাইথনে SQL Alchemy ORM টা বেশি ব্যবহার হয়।
5 এছাড়া, Git-Github ও IDLE ( Pycharm বা VS Code ) এর ব্যবহার সম্পর্কে জানতে হবে
6. ও Django projects Deploy করাটা জানতে হবে.
7. এরপরে, ব্যাকএন্ডে Django with react(Library), next js(Framework) ফ্রন্টএন্ডে রেখে amazing সব ওয়েবসাইট বানাবো ও লাইফ গোল সেট করব।
জ্যাংগো এ ফ্রি কোর্সে আমরা কি কি শিখব? জেনে নিন
- জ্যাংগো পরিচিতি/Architecture ( জ্যাংগো ফাইলস, এমভিটি স্ট্রাকচার ইত্যাদি)
- জ্যাংগোর সাহায্যে সম্পূর্ন একটা ব্লগ তৈরী
- বিভিন্ন প্রজেক্ট তৈরি করব-
ইকমার্স তৈরী
সি আর এম (কাস্টমার রিলেশনশিপ ম্যানেজমেন্ট সিস্টেম)
সোশ্যাল নেটওয়ার্ক ( ইন্সটাগ্রাম বা পিন্টারেস্ট এর ক্লোন)
ফুড পান্ডা টাইপস সাইট তৈরী etc. - পরে হলেও খুব ভাল করে শেখব-
Python,
OOP,
SQLite3,
Git-Github শিখব। -
এছাড়া এডভান্স শিখব-
Working with Docker ContainerizationProject Deployment in Cloud PlatformsDjango REST Framework ConceptsFastAPI ConceptsPersonal Project Development SessionSession to Build Individual Final Project for All Students -
Career Guideline Session- ফাইনালি, মার্কেটপ্লেসে কাজ করব ও IT কোম্পানিতে জব করব, ইনশাআল্লাহ।
ধারাবাহিকভাবে যেভাবে শিখব-
- পূর্বশর্ত হিসেবে, জ্যাংগো শেখার আগে শিখব- Basic Python ও Frontend Web Development এর html, css, bootstrap, javascript বিষয়গুলো ও Sql Database সম্পর্কে জানতে হবে. এরপর
- সর্বপ্রথম, জ্যাংগো architecture: Environment setup ও File Structure[Project, Apps] সম্পর্কে জানতে হবে.
- দ্বিতীয়ত,, জ্যাংগো architecture: MVT Structure সম্পর্কে জানতে হবে.
- তৃতীয়ত, কিছু এক্সট্রা ব্যাপার সবার যেমন- জ্যাংগো Model: ORM ও Fields অপশনগুলো সম্পর্কে জানতে হবে.
- চতুর্থত, বেশি বেশি প্রজেক্ট করতে হবে, যেমন- যেকোনো একটা Apps তৈরির কাজ করতে হবে(উদাহরণস্বরূপ: জ্যাংগোর সাহায্যে complete ব্লগ তৈরি)
ছোট কিছু Web অ্যাপস(Beginner’s Project)- Weather Apps তৈরি, লিঙ্ক শর্টেনার Apps তৈরি, etc
বড় কিছু প্রজেক্ট অ্যাপস- ব্লগ তৈরী, ইকমার্স সাইট তৈরি, কাস্টমার রিলেশনশিপ ম্যানেজমেন্ট সিস্টেম তৈরি, স্কুল ম্যানেজমেন্ট সিস্টেম তৈরি etc - ফাইনালি, Git-Github ও অনলাইনে Django projects Deploy করাটা শিখব এবং OOP সহ আরও এডভান্স কিছু শিখব.
Django project ideas
Django Beginner’s Projects-
- Weather App using Django
- লিঙ্ক শর্টেনার (Cutt.ly Similiar)
- QR Code Generator
- English dictionary এপস
- calculator type site Project
- Age Calculator type, pcyco site
- time and date with django
- Online Search Engine(Google Clone)
- Create question answer engine
- Create Copyright free image downloader
- Create Amazon data scraper
- Email Validation
- Sending Emails with Python
- polls
- django form
- Text-to-HTML Converter
- Calorie Counter App
- Django Quiz App
- Python Resume Builder
- Railway Enquiry System
Django ইন্টারমিডিয়েট’s Projects-
- To-Do list App using Django – রিচ টেক্সট এডিটর তৈরী
- Create a mini Blog using Django
- Create sports site(live cric score)
- Login & Logout System in Django
- Create News Agregator using Django
- Create Portfolio of Projects
- Django Chat App
- Contact Management System
- Django CMS
Django Advance’s Projects-
- সম্পূর্ণ ব্লগ তৈরী
- ইকমার্স সাইট তৈরী
- ফুড পান্ডা টাইপস সাইট তৈরী
- সোশ্যাল নেটওয়ার্ক সাইট তৈরী ( ইন্সটাগ্রাম বা পিন্টারেস্ট এর ক্লোন)
- সি আর এম ( কাস্টমার রিলেশনশিপ ম্যানেজমেন্ট সিস্টেম)
- ম্যানেজমেন্ট সিস্টেমঃ
স্কুল, হস্পিটাল, শপ, হোটেল, লাইব্রেরি ম্যানেজমেন্ট সিস্টেম - Funnel management Project
-
TripAdvisor Similiar site Project
-
Priyo Similiar site Project
-
Browseseo.net Similiar site ProjectAlternativeto.net Similiar site Projectremove.bg Similiar site Projectsimiliarweb Similiar site ProjectAhref type Similiar site Project
job Similiar site Projecttemplatemaker.nl typeboxshot Similiar site Project
বোনাস টিপস-
নন সিএসসি ব্যাকগ্রাউন্ড এর হয়েও পাইথন এর মাধ্যমে প্রোগ্রামিং শিখে আপনি কি কি হতে পারেন?
- ডেটা ইঞ্জিনিয়ার(Data Engineer) – জেনে নিন : একজন ডাটা ইঞ্জিনিয়ার এর কাজ কি ও কিভাবে একজন Data Engineer হবেন