আমাদের কথা খুঁজে নিন

   

মজার ও সহজ প্রোগ্রামিং, পাইথন প্রোগ্রামিং [পর্ব-১৭] :: পাইথনে ওয়েব ডেভলপমেন্ট এর ৭ কাহন

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

আসুন আমরা দেখি কীভাবে এই কাজ গুলো করতে হয় ।
মূলত এই কাজগুলো করতে হলে আপনাকে HTML সম্পর্কে হালকা পাতলা ধারণা রাখতে হবে । কারণ এই কাজটা করতে হবে মূলত HTML ও PYTHON এর সমন্বিত কাজের মাধ্যমে । আমাদের এই কাজের কনসেপ্ট হল বিভিন্ন কাজের জন্য একটা পাইথনের প্রোগ্রাম লিখে নেওয়া ও পরবর্তীতে HTML এর মাধ্যমে এটাকে ওয়েব সাইটের বিভিন্ন কাজে লাগানো ।
দেখূন , প্রথমে আমরা খুবই সহজ একটা পাইথনের ওয়েব স্ক্রিপ্ট লিখে ফেলি ।

সবাই লিখূন :
এবং এর আউটপুট হবে নিচের মত :
Hello Word! This is my first CGI program আর এর টাইটেল হবে নীচের মত ; Hello Word - First CGI Program
দেখুন , যারা HTML জানেন তারা আশঅ করি বিষয়টা বুঝতে পেরেছেন । আর যারা জানেন না তারা দয়া করে HTML এর যেকোন টিউটোরিয়াল থেকে এর বেসিক কনসেপ্ট টা নিয়ে আসুন । না হলে এখানে HTML কোডগুলো বিস্তারিতভাবে ব্যাখ্যা করা সম্ভব না ।
যাই হো , আমরা পাইথন ইউজ করে আমাদের ওয়েবের প্রথম কোডিং করে ফেললাম । এবার দেখি এর মাধ্যমে কীভাবে ফর্ম ভ্যালিডেশন এর কাজ করা যায় ।

সবাই নিচের কোডগুলো লিখুন ।
দেখুন , এখানে আমরা প্রথমে মডিউল ইমপোর্ট করে নিয়েছি । তারপর form = cgi.FieldStorage() কোডের মাধ্যমে আমরা এখানে ফর্মের জন্য ফিল্ড স্টোরেজ তৈরী করেছি । তারপরের ২ টা কোডের মাধ্যমে আমরা HTML ফর্মের থেকে বইউজারের ইনপুট দেওয়া ডাটা নিয়েছি । এরপর HTML কোডগুলি লিখে ২য় হেডারের মধ্যে আমাদের ইনপুট নেওয়া ডাটা প্রিন্ট দিয়েছি ।

এখঅনে %s এর মান পরে ব্রাকেটের মধ্যে বলে দেওয়া হয়েছে যে তা উপরের ইনপুট নেওয়া ডাটা হবে । এবার এটাকে .py বা .cgi ফরম্যাটে সেভ করুন । তারপর এইটাকে ওয়েবসাইটে ইউজ করার জন্য আমাদের যে HTML কোড লাগবে তা দেখে নিই । HTML কোড দ্বারা আমরা মূলত একটা ডাটা ইনপুট ফিল্ড ক্রিয়েট করব , যার action এ দেওয়া থাকবে আমাদের উপরের প্রোগ্রামটি ।
<form action="/cgi-bin/hello_get.py" method="get"> First Name: <input type="text" name="first_name"> <br /> Last Name: <input type="text" name="last_name" /> <input type="submit" value="Submit" /> </form>
এবার দেখুন পাইথনের মাধ্যমে কীভাবে রেডিও বাটন , ড্রপ ডাউন মেনু বা টেক্সট ফিল্ড থেকে ডাটা নিতে হয় ।


রেডিও বাটন :
সবাই প্রথমে রেডিও বাটন তৈরী করার জন্য নিচের HTML কোডগুলি লিখুন :
<form action="/cgi-bin/radiobutton.py" method="post" target="_blank"> <input type="radio" name="subject" value="maths" /> Maths <input type="radio" name="subject" value="physics" /> Physics <input type="submit" value="Select Subject" /> </form>
দেখুন , এখানে একশনে আমরা একটা পাই ফাইলের কথা বলে দিয়েছি । উপরের কোডগুলো ২ টা রেডিও বাটন তৈরী করবে Maths ও Physics নামে । এবার দেখুন , এই রেডিও বাটন থেকে ডাটা নেবার জন্য আমাদের পাইথন স্ক্রিপ্ট :
দেখুন , এখান আমরা
এই কোডের মাধ্যমে বলেছি যে ফর্ম থেকে যে রেডিও বাটনের ডাটা ইনপুট পাবে তা subject নামের ভ্যারিয়েবল এর মধ্যে সংরক্ষন করতে , আর ডাটা না পাওয়া গেলে subject হবে Not set । অর্থাৎ এটাই প্রিন্ট করবে পরে । তারপর আমরা ২য় হেডারে গিয়ে আমাদের সাবজেক্ট প্রিন্ট করেছি ।


ড্রপ ডাউন মেনু : প্রথমে দেখে নিই আমাদের ড্রপ ডাউন মেনুর জন্য তৈরী HTML কোড । সবাই নিচের কোড গুলি লিখূন :
<form action="/cgi-bin/dropdown.py" method="post" target="_blank"> <select name="dropdown"> <option value="Maths" selected>Maths</option> <option value="Physics">Physics</option> </select> <input type="submit" value="Submit"/> </form>
এবার এর ভ্যালিডেশন হল উপরের রেডিও বাটনের মতই একই । শূধূ HTML কোড অনুযায়ী ভ্যারিয়েবলের নাম গুলি পাল্টে দিন ।
টেক্সট এরিয়া : সবাই এর জন্য HTML কোড গুলি লিখূন : <form action="/cgi-bin/textarea.py" method="post" target="_blank"> <textarea name="textcontent" cols="40" rows="4"> Type your text here... </textarea> <input type="submit" value="Submit" /> </form>
এর পাইথন স্ক্রিপ্ট ও রেডিও বাটনের মতই একই । তবুএও এটা দিয়ে দিলাম :
ওয়েব সাইটে ফাইল আপলোড :
এবার আমরা দেখব পাইথন স্ক্রিপ্ট দিয়ে কীভঅবে একটা ওয়েবসাইটে ফাইল আপলোড করতে হয় ।

এই কাজের জন্য সবার প্রথমে নিচের HTML কোড গুলি লিখে নিন ।
<html> <body> <form enctype="multipart/form-data" action="save_file.py" method="post"> <p>File: <input type="file" name="filename" /></p> <p><input type="submit" value="Upload" /></p> </form> </body> </html>
এটা মূলত বিভিন্ন ওয়েবসাইটে যেভাবে আপলোড বাটন সো করে সেটাই তৈরী করবে । এবার দেখি , এই আপলোড বাটনের মাধ্যমে কীভাবে কাজ করাত হয় পাইথন স্ক্রিপ্ট দ্বারা । এর জন্য সবাই নিচের পাইথনের কোডগুলো লিখূন :
দেখূন , এখান আমরা প্রথমে fileitem = form['filename'] কোডের দ্বারা এই নামের কোন ফাইল আছে কিনা তা চেক করেছি । তারপর if fileitem.filename কোড দ্বারা আমরা চেক করেছি যে ফাইলটি আপলোড হয়েছে কিনা ।

এখন তার পরের অংশটুকা দেখূন :
প্রথমে আমরা ১ম কোডের মাধ্যমে ইউজার যে প্যাথ টা তে ফাইল দেখিয়ে দিয়েছে সেখানে গিয়েছি । এরপর open ফাংশনের মাধ্যমে ফাইলটা পড়ার ও লেখার জন্য ওপেন করেছি । এরপর write(fileitem.file.read()) কোডের মাধ্যমে আমরা ফাইলটা ওয়েব সার্ভারে আপলোড করে পড়েছি । এখন যদি এই প্রক্রিয়া সাকসেসফুল হয় , তাহলে প্রোগ্রামটা আমাদের message ভ্যারিয়েবলের মধ্যের লেখাটি সো করবে । আর কোন কারণে যদি এ প্রক্রিয়া সম্পন্ন না হয় তাহলে 'No file was uploaded' লেখাটি প্রিন্ট করবে ।


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

এটা আপনার ইউজার আইডি ও পাসওয়ার্ড এর কুকি । এভাবে আপনি অনেক কিছুই কুকি তৈরী করতে পারবেন ।
দেখূন , print( "Content-type:text/html\r\n\r\n") লাইনটি যেখানে সব সময় HTML কোডের প্রথমে থাকে সেটা কিন্তু এ ক্ষেত্রে এই কোডের পরে থাকবে ।
প্রথমে আমরা Set-Cookie কোড দ্বারা ইউজার নেম ও পাসওয়ার্ড সেট করে দিয়েছি । তার পরের লাইনে আমরাএই কুকি কত দিন বা সময় পর্যন্ত কার্যকর থাকবে তা সেটা করেছি ।

তারপর ডোমেইনের নাম সেট করেছি। তারপর কুকির প্যাথ বলে দিয়েছি । এভাবে, যেকোন ওয়েবসাইটের কুকি সেট করা যায় পাইথন দ্বারা ।
আজ এই পর্যন্তই । আর লিখলাম না ।

আজকের লেখাটা একটু বড়ই হয়ে গেল । কিছূ মনে কইরেন না।
আবার দেখা হবে । সমস্যা হলে বইলেন । চেষ্টা করব ।

আর পাইথনের বিভিন্ন সমস্যার ও রিসোর্স এর জন্য এই গ্রুপে জয়েন করতে পারেন । সবাই ভাল থাকবেন । ধন্যবাদ ।

সোর্স: http://www.techtunes.com.bd/     দেখা হয়েছে ১০ বার

এর পর.....

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

প্রাসঙ্গিক আরো কথা
Related contents feature is in beta version.