জ্যাঙ্গো (ওয়েব ফ্রেমওয়ার্ক)

জ্যাঙ্গো (  Django) একটি পাইথন ভিত্তিক মুক্ত ও উন্মুক্ত উৎসের ওয়েব ফ্রেমওয়ার্ক। এই ওয়েব ফ্রেমওয়ার্কটিতে মডেল-টেমপ্লেট-ভিউ (MTV) আর্কিটেকচার ব্যবহার করা হয়েছে। এই প্রকল্পটি আমেরিকান স্বাধীন অলাভজনক সংস্থা হিসাবে প্রতিষ্ঠিত জ্যাঙ্গো সফটওয়্যার ফাউন্ডেশন (DSF) কর্তৃপক্ষ পরিচালনা করে।

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

বহুল পরিচিত অনেক ওয়েবসাইটই জ্যাঙ্গো ফ্রেমওয়ার্ক ব্যবহার করে থাকে। যেমনঃ পিবিএস, ইনস্টাগ্রাম, মোজিলা, দ্য ওয়াশিংটন টাইমস, ডিসকাস, বিটবাকেট, এবং নেক্সটডোর।

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

২০০৮ সালের জুনে ঘোষণা করা হয়েছিল যে নতুন গঠিত জ্যাঙ্গো সফটওয়্যার ফাউন্ডেশন (ডিএসএফ) ভবিষ্যতে জ্যাঙ্গোকে পরিচালনা করবে।

বৈশিষ্ট্য

উপাদানসমূহ 
নিজস্ব নামকরণ থাকা সত্ত্বেও, যেমন এইচটিটিপি প্রতিক্রিয়াগুলি "ভিউ" তৈরি করে কলযোগ্য বস্তুর নামকরণ করার পরেও মূল জ্যাঙ্গো কাঠামোটিকে এমভিসি স্থাপত্য হিসাবে দেখা যেতে পারে। এটিতে রয়েছে একটি অবজেক্ট-রিলেশনাল ম্যাপার (ওআরএম) যা ডেটা মডেলগুলি (মধ্যবর্তী ক্লাস হিসাবে সংজ্ঞায়িত) এবং একটি সাম্পর্কিক ডাটাবেস এর মধ্যে মধ্যস্থতা করে ("মডেল"), ওয়েব টেমপ্লেট সিস্টেমসহ এইচটিটিপি অনুরোধগুলি প্রক্রিয়া করার জন্য একটি সিস্টেম ("ভিউ") এবং একটি নিয়মিত-এক্সপ্রেশন-ভিত্তিক ইউআরএল প্রেরণকারী ("কন্ট্রোলার")।

এছাড়াও মূল ফ্রেমওয়ার্কে অন্তর্ভুক্ত রয়েছে:

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

বান্ডিল করা অ্যাপ্লিকেশন 
প্রধান জ্যাঙ্গো বিতরণ তার "contrib" প্যাকেজে বেশ কয়েকটি অ্যাপ্লিকেশনকেও বান্ডিল করে:

 একটি এক্সটেনসেবল প্রমাণীকরণ সিস্টেম
 ডায়নামিক প্রশাসনিক ইন্টারফেস
 আরএসএস এবং অ্যাটম সিন্ডিকেশন ফিড তৈরির সরঞ্জামসমূহ
 একটি "সাইট" ফ্রেমওয়ার্ক যা একটি জ্যাঙ্গো ইনস্টলেশনকে তাদের নিজস্ব সামগ্রী এবং অ্যাপ্লিকেশনসহ একাধিক ওয়েবসাইট চালাতে দেয়
 গুগল সাইটম্যাপ তৈরির সরঞ্জাম
 ক্রস-সাইট অনুরোধ জালিয়াতি, ক্রস-সাইট স্ক্রিপ্টিং, এসকিউএল ইনজেকশন, পাসওয়ার্ড ক্র্যাকিং এবং অন্যান্য সাধারণ ওয়েব আক্রমণগুলির জন্য অন্তর্নির্মিত নিরসন
 জিআইএস অ্যাপ্লিকেশন তৈরির জন্য একটি ফ্রেমওয়ার্ক

ব্যাপকতা 
জ্যাঙ্গোর কনফিগারেশন সিস্টেমটি তৃতীয় পক্ষের কোডকে একটি নিয়মিত প্রকল্পে প্লাগ করার অনুমতি দেয়, যদি তা পুনরায় ব্যবহারযোগ্য অ্যাপ্লিকেশন কনভেনশন অনুসরণ করে। মূল সরঞ্জামটি মোকাবেলা করেনি এমন সমস্যার সমাধান প্রদানের জন্য কাঠামোর মূল আচরণ বাড়ানোর জন্য ২৫০০ টিরও বেশি প্যাকেজ রয়েছে, যেমন নিবন্ধকরণ, অনুসন্ধান, এপিআই সরবরাহ এবং ব্যবহার, সিএমএস ইত্যাদি।

এই ব্যাপকতা যদিও অভ্যন্তরীণ উপাদানগুলির নির্ভরতা দ্বারা প্রশমিত। জ্যাঙ্গো দর্শনটি আলগা সংযোজনকে বোঝায়, টেমপ্লেট ফিল্টার এবং ট্যাগগুলি একটি ইঞ্জিন বাস্তবায়ন অনুমান করে এবং auth এবং admin উভয় বান্ডিলযুক্ত অ্যাপ্লিকেশনেরই অভ্যন্তরীণ ওআরএম ব্যবহারের প্রয়োজন। এই ফিল্টার বা বান্ডিলযুক্ত অ্যাপগুলির কোনটিই জ্যাঙ্গো প্রকল্প চালানোর জন্য বাধ্যতামূলক নয়, তবে পুনরায় ব্যবহারযোগ্য অ্যাপ্লিকেশনগুলি তাদের উপর নির্ভর করে, ডেভেলপারদের অ্যাপস বাস্তুতন্ত্র থেকে পুরোপুরি উপকার পেতে অফিসিয়াল স্ট্যাকটি ব্যবহার করতে উৎসাহিত করা হয়।

সার্ভারের ব্যবস্থা 
জ্যাঙ্গোকে অ্যাপাচি, ডাব্লুএসজিআই ব্যবহার করা এনজিনেক্স, গানিকর্ন, অথবা ফ্লুপ ব্যবহার করা চেরোকির (একটি পাইথন মডিউল) সাথে একত্রে চালানো যেতে পারে। জ্যাঙ্গোতে ফাস্টসিজিআই সার্ভার চালু করার ক্ষমতাও অন্তর্ভুক্ত রয়েছে, এমন কোনও ওয়েব সার্ভারের পিছনে ব্যবহার সক্ষম করে যা ফাস্টসিজিআই সমর্থন করে যেমন লাইটটিপিডি বা হিয়াওয়থা। অন্যান্য ডাব্লুএসজিআই-কমপ্লায়েন্ট ওয়েব সার্ভার ব্যবহার করাও সম্ভব। জ্যাঙ্গো আনুষ্ঠানিকভাবে পাঁচটি ডাটাবেস ব্যাকেন্ডকে সমর্থন করে: পোস্টগ্রেসকিউএল, মাইএসকিউএল, মারিয়াডিবি, এসকিউলাইট এবং ওরাকল। মাইক্রোসফ্ট এসকিউএল সার্ভারটি মাইক্রোসফ্ট অপারেটিং সিস্টেমে django-mssql এর সাহায্যে ব্যবহার করা যেতে পারে, একইভাবে আইবিএম ডিবি২, এসকিউএল এনিহোয়ার এবং ফায়ারবার্ডের জন্য বহিরাগত ব্যাকেন্ডগুলি বিদ্যমান। django-nonrel নামে একটি ফোর্ক রয়েছে যা নোএসকিউএল ডেটাবেসগুলিকে সমর্থন করে যেমন মঙ্গোডিবি এবং গুগল অ্যাপ ইঞ্জিনের ডেটাস্টোর।

যেকোনো জাভা ইই অ্যাপ্লিকেশন সার্ভার যেমন গ্লাস ফিশ বা জেবসে জ্যাঙ্গো জাইথনের সাথে একযোগে চালানো যেতে পারে। এক্ষেত্রে ডাটাবেস সংযোগের জন্য জেডিবিসি ড্রাইভার সরবরাহের জন্য django-jython ​​ইনস্টল করা আবশ্যক, যা জঙ্গোকে সংকলনের জন্য কার্যকারিতা সরবরাহ করতে পারে।

গুগল অ্যাপ ইঞ্জিন বান্ডিল ফ্রেমওয়ার্কগুলির একটি হিসাবে জ্যাঙ্গো সংস্করণ ১.x.x এর জন্য সমর্থন অন্তর্ভুক্ত করে।

সংস্করণ ইতিহাস 
জ্যাঙ্গো টিম মাঝে মধ্যে নির্দিষ্ট কিছু প্রকাশকে "দীর্ঘমেয়াদী সমর্থন" (এলটিএস) প্রকাশের জন্য মনোনীত করে। এলটিএস রিলিজগুলি পরবর্তী সময়ে প্রকাশের গতি নির্বিশেষে সুরক্ষা এবং উপাত্ত ক্ষতি সমাধান নিশ্চিত সময়ের জন্য (সাধারণত ৩ বছরের বেশি) প্রয়োগ করা হবে।

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

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

সম্প্রদায় 
জ্যাঙ্গো উন্নয়নকারী এবং ব্যবহারকারীদের জন্য প্রতিবছর দুটি করে "জ্যাঙ্গোকন" নামে সম্মেলন অনুষ্ঠিত হয়, যা ২০০৮ সালের সেপ্টেম্বরের পর থেকে অনুষ্ঠিত হচ্ছে। প্রতিবছর মে বা জুন মাসে ইউরোপে এবং আগস্ট বা সেপ্টেম্বরে মার্কিন যুক্তরাষ্ট্রের বিভিন্ন শহরে জ্যাঙ্গোকন অনুষ্ঠিত হয়। ২০১৩ সালে ৩ থেকে ৮ সেপ্টেম্বর পর্যন্ত ওয়াশিংটন, ডিসি-তে জ্যাঙ্গোকন অনুষ্ঠিত হয়েছিল। ২০১৩ জ্যাঙ্গোকন শিকাগোতে হায়াট রিজেন্সি হোটেলে এবং সম্মেলন-পরবর্তী স্প্রিন্টগুলি ডিজিটাল বুটক্যাম্প, কম্পিউটার প্রশিক্ষণ কেন্দ্রে হোস্ট করা হয়েছিল। ২০১৪ সালের মার্কিন জ্যাঙ্গোকন ৩০ আগস্ট থেকে ৬ সেপ্টেম্বর পর্যন্ত পোর্টল্যান্ডে অনুষ্ঠিত হয়েছিল। ২০১৫ সালের জ্যাঙ্গোকন ইউএস অস্টিন, টেক্সাসে ৬ থেকে ১১ সেপ্টেম্বর পর্যন্ত এটিএন্ডটি এক্সিকিউটিভ সেন্টারে অনুষ্ঠিত হয়েছিল। ফিলাডেলফিয়ার হোয়ার্টন স্কুল অব দ্য ইউনিভার্সিটি অব পেন্সিল্‌ভেনিয়াতে ১৭ থেকে ২২ জুলাই পর্যন্ত ২০১৬ জ্যাঙ্গোকন ইউএস অনুষ্ঠিত হয়েছিল। ২০১৭ এর জ্যাঙ্গোকন ইউএস ওয়াশিংটনের স্পোকানে অনুষ্ঠিত হয়েছিল; ২০১৮ এর জ্যাঙ্গোকন ইউএস ক্যালিফোর্নিয়ার স্যান ডিয়েগোতে অনুষ্ঠিত হয়েছিল। জ্যাঙ্গোকন ইউএস ২০১৯ পুনরায় স্যান ডিয়েগোতে ২২-২৭ সেপ্টেম্বর অনুষ্ঠিত হয়েছিল।
অস্ট্রেলীয় পাইথন সম্মেলন 'পাইকন এইউ' এর অংশ হিসাবে সাধারণত প্রতি বছর জ্যাঙ্গো ক্ষুদ্র সম্মেলন অনুষ্ঠিত হয়। পূর্বে, এই মিনি-সম্মেলনগুলি অনুষ্ঠিত হয়েছিল:

 হোবার্ট, অস্ট্রেলিয়া, জুলাই ২০১৩,
 ব্রিসবেন, অস্ট্রেলিয়া, আগস্ট ২০১৪ এবং ২০১৫,
 মেলবোর্ন, অস্ট্রেলিয়া, আগস্ট ২০১৬ এবং ২০১৭, এবং
 সিডনি, অস্ট্রেলিয়া, আগস্ট ২০১৮ এবং ২০১৯।

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

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

 রুবির জন্য লিকুইড
 পার্লের জন্য টেমপ্লেট :: সুইগ
 পিএইচপি এবং জাভাস্ক্রিপ্ট এর জন্য ট্যুইগ
 পাইথনের জন্য জিনজা
 আরল্যাং এর জন্য আর্লিডিটিএল

জ্যাঙ্গো ফ্রেমওয়ার্কের উপর ভিত্তি করে সিএমএস 
ফ্রেমওয়ার্ক হিসাবে জ্যাঙ্গো সিএমএস তৈরি করতে সক্ষম। তবে ইতোমধ্যে কয়েকটি সিএমএস রয়েছে যা জ্যাঙ্গোর উপর নির্মিত। নীচে জ্যাঙ্গো কাঠামোর উপর নির্মিত কয়েকটি সিএমএসের তালিকা রয়েছে:

 জ্যাঙ্গো সিএমএস
 ওয়াগটেইল
 মেজানাইন

আরও দেখুন 
 ফ্লাস্ক (ওয়েব ফ্রেমওয়ার্ক)
 ওয়েব ফ্রেমওয়ার্কের তুলনা
 রুবি অন রেইলস

তথ্যসূত্র

গ্রন্থাগার 

 
 
 
 
 
 
 

এই তালিকাটি বর্তমান জ্যাঙ্গো বইয়ের  একটি নিষ্কাশন।

বহিঃসংযোগ 

 

মুক্ত পাইথন সফটওয়্যার প্রোগ্রাম
পাইথন (প্রোগ্রামিং ভাষা) ওয়েব ফ্রেমওয়ার্ক
বিএসডি লাইসেন্স ব্যবহার করা সফটওয়্যার
ওয়েব ফ্রেমওয়ার্ক