পাইথন এবং জ্যাংগো দিয়ে ওয়েব ডেভেলপমেন্ট

ওয়েব ডেভেলপমেন্টের কাজের সীমানা ওয়েবসাইটের সাধারণ একটি পেইজ তৈরি থেকে শুরু করে জটিল ওয়েব অ্যাপ্লিকেশন তৈরি পর্যন্ত বিস্তৃত। এই কাজগুলোকে ২টি ভাগে ভাগ কয়া যায়। এক, ফ্রন্টএন্ড – যেখানে ক্লায়েন্টের সাথে ইন্টার‍্যাকশন পরিচালনা করা হয় এবং আরেকটি ব্যাক-এন্ড – যেখানে লজিক্যাল বিষয়গুলো সামলানো হয়।
ওয়েব ডেভেলপমেন্টের জন্য রয়েছে আলাদা গঠন-কাঠামো ও বৈশিষ্ট্যসম্পন্ন ল্যাংগুয়েজ, সেগুলোর জন্য উপযোগী ফ্রেমওয়ার্ক ও লাইব্রেরি। এই আর্টিকেলটির আলোচ্য ল্যাংগুয়েজটি পাইথন এবং ফ্রেমওয়ার্কটি জ্যাংগো।

পাইথন

ওয়েব ডেভেলপমেন্টের জগতে পাইথন একটি সুপরিচিত নাম, এর আলাদা পরিচিতি নিষ্প্রয়োজনীয়। তবুও যদি বলতেই হয় তাহলে বলবো যে, ওয়েব ডেভেলপমেন্টের জগতে যারা নতুন তাদের জন্য জ্যাংগো খুবই সহায়ক একটি প্ল্যাটফর্ম কেননা এখানে রয়েছে প্রচুর পরিমাণে লাইব্রেরি ব্যবহারের সুবিধা। যে কোন সমস্যার সমাধান খুঁজতে গেলে দেখা যাবে যে ইতিমধ্যে কেউ না কেউ সমস্যাটি সমাধান করে একটি লাইব্রেরি তৈরি করে রেখেছে।
শুধু নতুনরাই নয়, পুরাতন এবং দক্ষ ডেভেলপারদের কাছেও এর গ্রহণযোগ্যতা অনেক বেশি। বিশ্বের বড় বড় কিছু প্রতিষ্ঠান যেমন – ইন্সটাগ্রাম, মজিলা, বিটবাকেট প্রভৃতির ওয়েবসাইট তৈরিতে এই ফ্রেমওয়ার্কটি ব্যবহৃত হয়েছে।

পাইথনের সুবিধা

  • পাইথন ব্যবহারের সুবিধাগুলো হল –
  • সহজেই শেখা যায়
  • প্রচুর লাইব্রেরি বিদ্যমান
  • দ্রুত প্রোটোটাইপ তৈরি করা যায় এবং
  • প্রোগ্রামিং ল্যাংগুয়েজ হিসেবে এর বহুমুখী ব্যবহার

জ্যাংগো (পাইথনের ফ্রেমওয়ার্ক)

পাইথনের বিভিন্ন ফ্রেমওয়ার্কের মধ্যে রয়েছে – জ্যাংগো, ফ্লাস্ক, টার্বোগিয়ারস, পিরামিড ইত্যাদি। এদের মধ্যে ওয়েব ডেভেলপমেন্ট ফ্রেমওয়ার্ক হিসেবে জ্যাংগো খুবই জনপ্রিয়। এটি একটি ওপেন সোর্স, হাই লেভেল ফ্রেমওয়ার্ক যা পরিচ্ছন্ন ও ব্যবহার উপযোগী ডিজাইন তৈরিতে সহায়তা করে।
ওয়েব ডেভেলপমেন্ট এবং পরীক্ষার জন্য, মধ্যবর্তী মাধ্যম হিসেবে, ফর্ম প্রসেসিং ও পাইথনের ইউনিট টেস্টিং এর জন্য ইন্টারফেস হিসেবে, মোট কথা এটি আমাদের চিন্তারও বাহিরে অনেক বেশি ফিচার সমৃদ্ধ স্বতন্ত্র ও স্বয়ংসম্পূর্ণ একটি ওয়েব সার্ভার।

জ্যাংগো দিয়ে কাজ শুরু করার পূর্বে যে বিষয়গুলো জানা দরকার

এতক্ষণ পাইথন এবং জ্যাংগোর সম্পর্কে সাধারণ পরিচিতি পেলেন এবার জ্যাংগো দিয়ে কাজ শুরু করবার পূর্বে আপনাকে বেসিক যে বিষয়গুলো সম্পর্কে জানতে হবে তা তুলে ধরছি –

এইচটিএমএল (HTML) এবং সিএসএস (CSS)

এইচটিএমএল এবং সিএসএস হল যেকোন ওয়েবসাইট তৈরির একদম মৌলিক দুইটি উপাদান। খুবই সাধারণ একটি ওয়েব পেইজ তৈরি এবং ডিজাইনের জন্য এই দুইটি প্রথমেই শিখতে হবে। এদেরকে যদিও প্রোগ্রামিং ল্যাংগুয়েজ হিসেবে গণ্য করা হয় না কিন্তু এরা ওয়েব পেইজের বেসিক স্ট্রাকচার গঠনে ব্যবহৃত হয়।
একেবারে শুরু থেকে একটি ওয়েবসাইট তৈরি করে, তা সার্ভারে হোস্ট করা সম্পর্কে পরিষ্কার ধারণা পেতে Complete HTML5, CSS3 & Bootstrap 4 কোর্সটি করে নিন।

জাভাস্ক্রিপ্ট (JavaScript)

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

জাভাস্ক্রিপ্ট শেখার রিসোর্স

ক্লায়েন্ট-সাইড প্রোগ্রামিং লাঙ্গুয়েজের মধ্যে জাভাস্ক্রিপ্টের জনপ্রিয়তা দিন দিন বেড়েই যাচ্ছে। আর এই কারণে ইন্টারনেট জুড়ে ছড়িয়ে ছিটিয়ে আছে প্রচুর জাভাস্ক্রিপ্টের রিসোর্স। এর মধ্য থেকে কিছু স্ট্রাকচার্ড রিসোর্সের তালিকা দেয়া হলো –

জেকুয়েরি (jQuery)

জ্যাংগো দিয়ে কাজ শুরু করার পূর্বে, ডকুমেন্ট ম্যানিপুলেশন এবং কুয়েরি করার জন্য jQuery সম্পর্কে জানতে হবে। ডকুমেন্টের মধ্যে বিভিন্ন ধরণের কুয়েরি অপারেশন চালানোর জন্যই jQuery এর ব্যবহার করা হয়।

ফ্রন্টএন্ড ফেমওয়ার্ক ও লাইব্রেরি

সাধারণত ইউজার ইন্টারফেসটিকে সুন্দর ও আকর্ষণীয় করে তোলার জন্য বিভিন্ন ধরণের ফ্রন্টএন্ড ফ্রেমওয়ার্ক ব্যবহার করা হয়। এই ফ্রেমওয়ার্কগুলো কোথায়, কিভাবে ব্যবহার করা হয় সে সম্পর্কে জানতে হবে।
এছাড়া ফ্রন্ট এন্ড ডেভেলপমেন্টের জন্য লাইব্রেরি হিসেবে React.js এর উদাহরণ দেয়া যায় যা জ্যাংগোর সাথে বিভিন্ন প্ল্যাটফর্মে প্রচুর পরিমাণে ব্যবহৃত হচ্ছে। বিভিন্ন ধরনের ইউজার ইন্টারফেস তৈরির জন্য এই লাইব্রেরি খুবই জনপ্রিয়। অ্যাপ্লিকেশনে সাধারণ ভিও তৈরি, ডাটা পরিবর্তনের সাথে সাথে দক্ষভাবে আপডেট করা এই কাজগুলো এই লাইব্রেরিটি করে থাকে।

ফ্রন্টএন্ড ফ্রেমওয়ার্ক শেখার রিসোর্স

ডাটাবেজ

বিভিন্ন ধরণের ডাটাবেজ যেমন মাইএসকিউএল (MySQL), ওর‍্যাকল, মারিয়াডিবি ইত্যাদি সম্পর্কে ধারণা থাকতে হবে কেননা ডাটা মূলত এই ডাটাবেজেই সংরক্ষিত থাকে।

পাইথন(Python)

জ্যাংগো ফ্রেমওয়ার্কটি যেহেতু পাইথন ল্যাংগুয়েজে তৈরি করা তাই পাইথনের বেসিক বিষয়গুলো সম্পর্কে ধারণা থাকা অত্যাবশ্যক। উপরে উল্লেখিত জাভাস্ক্রিপ্টের মতই পাইথনেরও ডাটা টাইপ, ভ্যারিয়েবল, স্ট্রিং, কন্ট্রোল স্ট্যাটম্যান্ট, গাণিতিক অপারেশনগুলো করা সহ বিভিন্ন বেসিক জিনিস শিখতে হবে। এছাড়া পাইথনের বিভিন্ন বিল্ট-ইন ফিচার ও লাইব্রেরিগুলো সম্পর্কে ধারণা থাকতে হবে যাতে প্রয়োজনের সময় দ্রুত ব্যবহার করা যায়।

পাইথন শেখার রিসোর্স

ফুল স্ট্যাক ডেভেলপমেন্ট এবং জ্যাংগোর ব্যবহার

ফ্রন্টএন্ড ডেভেলপমেন্টের জন্য জ্যাংগো খুবই আকর্ষণীয় একটি টুল। এর একটি মৌলিক ক্ষমতা হল এটিকে HTML এর সাথে রেন্ডারিং করা যায়। এছাড়া লিখাকে আরো ফ্লেক্সিবল করার জন্য ও ওয়েবসাইটকে বারংবার ব্যবহারের জন্য এটি Ninja Template ব্যবহার করে থাকে।
একইভাবে ব্যাকএন্ড ডেভেলপমেন্টের জন্যও এটি সমান গুরুত্বপূর্ণ একটি টুল। সার্ভার এবং ক্লায়েন্ট সাইডের বিভিন্ন বিষয় ব্যবস্থাপনা করা থেকে শুরু করে বিভিন্ন লজিক্যাল ফাংশনকে সঠিকভাবে প্রয়োগ করা ইত্যাদি সব ক্ষেত্রেই এটি অনেক নির্ভরযোগ্য একটি মাধ্যম।

জ্যাংগোর আর্কিটেকচার


এতক্ষণ আমরা জ্যাংগো দিয়ে কোন কোন অংশে কাজ যায় তার ধারণা পেলাম, এবার এটির মূল আর্কিটেকচারের বর্ণনায় আসি।
এটি মূলত এমভিটি (MVT) বা মডেল, ভিউ, টেমপ্লেট এই আর্কিটেকচার অনুসরণ করে। এই এমভিটি আবার এমভিসি (MVC) বা মডেল, ভিউ, কন্ট্রোলার এই আর্কিটেকচারের ভিত্তির উপর গঠিত। এমভিসি আর্কিটেকচারটি এমন ধরণের ওয়েব অ্যাাপ্লিকেশনের জন্য ব্যবহৃত হয় যেখানে আমরা কোডকে বিভিন্ন সেগমেন্টে বিভক্ত করি যেমন এখানে মডেল, ভিউ ও কন্ট্রোলার এই তিনটি সেগমেন্টে বিভক্ত করা হয়েছে।
এক্ষেত্রে যেখানে ডাটাকে স্টোর ও মেইন্টেইন করা হয় সেটি হল মডেল। মডেল হল আর্কিটেকচারটির ব্যাক এন্ড যেখানে ডাটাবেজকে ডিফাইন করা হয়েছে। অন্যদিকে ভিউ হল HTML যা মূলত ফ্রন্ট এন্ড নিয়ে কাজ করে। ইউজার যা দেখতে পায় তাই ভিউর অন্তর্গত। সবশেষে কন্ট্রোলার হল এমন একটি সিস্টেম যা মডেল এবং ভিউয়ের মধ্যে সংযোগ স্থাপনে সহায়তা করে।
এতক্ষণ আমরা এমভিসি সম্পর্কে ধারণা পেলাম এবার এমভিটি প্যাটার্নের বর্ণনায় আসি।

এমভিসি এর সাথে এমভিটি এর মূল পার্থক্য হল এমভিটিতে ইউজার ইন্টারফেসের জন্য একটি পূর্ব নির্ধারিত টেমপ্লেট থাকে। এই টেমপ্লেট থাকার সুবিধা হল একই কোড বারবার লিখতে হবে না। এছাড়া এমভিটিতে জ্যাংগো নিজে কন্ট্রোলারের ভূমিকা পালন করে, কন্ট্রোলারকে এখানে ইনবিল্ট ফাংশন বলা যায়। নিচে এমভিটি আর্কিটেকচারের বিস্তারিত বর্ণনা তুলে ধরা হল –

মডেলঃ

এটি ডাটাবেজ হ্যান্ডল করতে সহায়তা করে। মডেল হল একটি ডাটা এক্সেস লেয়ার যা ডাটা স্টোর করার জন্য প্রয়োজনীয় উপাদান বহন করে। এটি একটি পাইথন ক্লাস যা জ্যাংগোর অন্যান্য লেয়ারগুলো সম্পর্কে জানে না, শুধুমাত্র নিজের লেয়ারে কাজ করতে সক্ষম। মডেলের মাধ্যমে ডেভেলপাররা আসল ডাটাবেজে ক্রিয়েট, আপডেট, ডিলিট ইত্যাদি অপারেশনগুলো চালাতে পারেন। এছাড়া ডাটা ম্যানিপুলেশনের জন্য অন্য কার্যক্রমগুলো এখান থেকেই পরিচালনা করতে পারেন।

ভিউঃ

ভিউ দিয়ে কিছু লজিক্যাল কাজ যেমন মডেলের সাথে ডাটার জন্য ইন্টারেক্ট করা, টেমপ্লেট রেন্ডারিং ইত্যাদি করা হয়। ভিউ মডেল থেকে ডাটা বহন করে আনে তারপর হয় সে প্রত্যেক টেমপ্লেটকে নির্দিষ্ট ডাটা এক্সেস করতে দেয় অথবা পূর্বেই সে ডাটাগুলোকে প্রসেস করে নেয়।এছাড়া এটি এইচ টি টি পি (HTTP) রিকোয়েস্ট এক্সেপ্ট করা, বিভিন্ন কাজের লজিক মেইন্টেইন করা ও ক্লায়েন্ট রিকোয়েস্টের প্রেক্ষিতে রেস্পন্স করা ইত্যাদি নানা কাজ করে থাকে।

টেমপ্লেটঃ

টেমপ্লেট হল প্রেজেন্টেশন লেয়ার যা ইউজার ইন্টারফেস পার্টকে পুরোপুরি নিয়ন্ত্রণ করে। এখানে বিভিন্ন HTML ফাইল থাকে যেগুলো ডাটা রেন্ডারিংয়ের জন্য ব্যবহৃত হয়। এই ফাইলের কন্টেন্টগুলো স্ট্যাটিক অথবা ডায়নামিক হয়ে থাকে। টেমপ্লেটে কোন কাজের লজিক থাকে না শুধুমাত্র ডাটা প্রেজেন্ট করার জন্য এটি ব্যবহৃত হয়।
ইন্টারন্যালি জ্যাংগোতে টেমপ্লেট হচ্ছে ফ্রন্ট এন্ড যা ভিউর সাথে ইন্টারেক্ট করে আর মডেল পুরো প্রসেসটায় ব্যাকএন্ড হিসেবে থাকে। তারপর ভিউ, মডেল এবং টেমপ্লেট উভয় জায়গায় এক্সেস করে এটিকে কোন একটি ইউ আর এলে (URL) ম্যাপ করে। অতঃপর জ্যাঙ্গো কন্ট্রোলারের রোল প্লে করে এটিকে ইউজারের কাছে উপস্থাপন করে।

জ্যাংগোর ফাইল স্ট্রাকচার

এবার আসি জ্যাংগোর ফাইল স্ট্রাকচারের বর্ণনায়। জ্যাঙ্গোর ফাইল স্ট্রাকচারে নিচের ফাইল্গুলো থাকে –

manage.py

এই ফাইলটি মূলত কমান্ড লাইন ইউটিলিটি দেয়ার জন্য কাজ করে।

__init__.py

এই ফাইলটি সাধারণত খালি থাকে এবং এটি বলার জন্য উপস্থিত থাকে যে এই ফাইলটি যে ডিরেক্টরির আন্ডারে রয়েছে সেটি মূলত একটি প্যাকেজ।

settings.py

এই ফাইলটি সকল অ্যাপ্লিকেশন এড করার জন্য উপস্থিত থাকে।

url.py

এই ফাইলটি বিভিন্ন রিসোর্সের অ্যাড্রেস প্রোভাইড করার জন্য বিদ্যমান।

wsgi.pi

এটি সার্ভার সাইডের কাজ করার জন্য ব্যবহৃত হয়।
ফাইল স্ট্রাকচারে সাধারণত এই ফাইল গুলো থাকে, এর বাইরে বিভিন্ন কাজের জন্য আরো কিছু অতিরিক্ত ফাইল থাকতে পারে।

জ্যাংগো দিয়ে ব্লগ তৈরি

আমরা জ্যাংগো আর্কিটেকচার এবং ফাইল স্ট্রাকচারের মূল বিষয়গুলো সম্পর্কে জানলাম। যদি আমরা জ্যাংগো দিয়ে একটি ব্লগ তৈরি করতে চাই তাহলে আমাদের নিম্নোক্ত বিষয়গুলো জানতে হবেঃ
ইউ আর এল ম্যাপিং, মডেল অবজেক্ট, এডমিন সাইট, ফর্ম ক্রিয়েট ও সাবমিশন, টেমপ্লেট ফিল্টার, ক্রুড, ভার্চুয়াল এনভায়রনমেন্ট, রেস্ট এপিআই, ডিপ্লয়মেন্ট ইত্যাদি।
জ্যাংগো ব্যবহার করে ব্লগ, ই-কমার্স এবং সোশ্যাল মিডিয়া ওয়েবসাইট তৈরি করা শিখতে, করে নিতে পারেন জ্যাংগো প্রোজেক্টস কোর্সটি।

পরিশেষে

এই আর্টিকেলটির মাধ্যমে পাইথন ও জ্যাংগো ব্যবহার করে একটি ওয়েবসাইট ডেভেলপমেন্টের জন্য যে বিষয়গুলো সম্পর্কে জানা প্রয়োজন তার উপর আলোকপাত করা হয়েছে। আশা করছি আর্টিকেলটি আপনাদের ভাল লাগবে।

শেয়ার করুন

1 thought on “পাইথন এবং জ্যাংগো দিয়ে ওয়েব ডেভেলপমেন্ট”

  1. Django shekhar jonno atw prerequisite ? tahole bohubrihi r backend python career track j beginner der jonno, oikhane to kono frontend library shekhano hoy na !

    Reply

Leave a Comment