Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python

পাইথন ফ্লাস্ক এবং মাইএসকিউএল ব্যবহার করে একদম শুরু থেকে ওয়েব অ্যাপ্লিকেশন তৈরি 

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Creating a Web App From Scratch Using Python Flask and MySQL.
Creating a Web App From Scratch Using Python Flask and MySQL: Part 2

Bengali (বাংলা) translation by Syeda Nur-E-Royhan (you can also view the original English article)

এই সিরিজে আমরা পাইথন, ফ্লাস্ক এবং মাইএসকিউএল ব্যবহার করে একটি সাধারণ ওয়েব অ্যাপ্লিকেশন তৈরি করবো। এটি একটা সহজ ও সাধারণ বাকেট লিস্টের অ্যাপ্লিকেশন হবে যেখানে ব্যবহারকারীরা রেজিস্টার করবেন, সাইন ইন করবেন এবং তাদের নিজস্ব বাকেট লিস্ট তৈরি করবেন।

এই টিউটোরিয়ালে আমরা ধরে নিচ্ছি যে পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ সম্পর্কে আপনার প্রাথমিক জ্ঞান রয়েছে। আমাদের অ্যাপ্লিকেশন তৈরির কাজে আমরা Flask নামের একটি পাইথন ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক ব্যবহার করবো। সাথে MySQL থাকবে ব্যাক এন্ড হিসেবে।

পাইথন ফ্লাস্কের পরিচিতি

ফ্লাস্ক হচ্ছে ওয়েব অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত একটি পাইথন ফ্রেমওয়ার্ক। অফিসিয়াল সাইট থেকে পাওয়া,

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

পাইথনের কথা ভাবলে কার্যত যে ফ্রেমওয়ার্কের কথা আমাদের মনে ভেসে উঠে সেটি হল জ্যাঙ্গো ফ্রেমওয়ার্ক। তবে নতুন নতুন পাইথন ব্যবহারকারীদের দৃষ্টিকোণ থেকে জ্যাঙ্গোর তুলনায় ফ্লাস্ক দিয়ে কাজ শুরু করা সহজ।

ফ্লাস্ক সেট আপ করা

ফ্লাস্ক সেট আপ করা বেশ সহজ এবং দ্রুত। pip প্যাকেজ ম্যানেজার দিয়ে আমাদের শুধুমাত্র জা করতে হবে তা হল:

ফ্লাস্ক ইন্সটল করা শেষ হয়ে গেলে FlaskApp নামে একটি ফোল্ডার তৈরি করুন। FlaskApp ফোল্ডারে চলে যান এবং app.py নামে একটি ফাইল খুলুন। flask মডিউল ইম্পোর্ট করুন এবং নিচে যেভাবে দেখানো আছে সেভাবে ফ্লাস্ক ব্যবহার করে একটি অ্যাপ তৈরি করুন:

এখন মূল রুট / এবং সাথের রিকোয়েস্ট হ্যান্ডলারকে সংজ্ঞায়িত করুন:

এরপর, এক্সিকিউটেড ফাইলটি মূল প্রোগ্রাম কিনা দেখুন এবং অ্যাপটি চালু করুন:

পরিবর্তনগুলো সেভ করে রাখুন এবং app.py চালু করুন:

আপনার ব্রাউজার http://localhost:5000/-এর দিকে তাক করুন এবং এতে করে স্বাগতম বার্তা পেয়ে যাবেন।

হোম পেইজ তৈরি করা

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

ফ্লাস্ক templates ফোল্ডারে টেম্পলেট ফাইল খুঁজে বেড়ায়। কাজেই PythonApp ফোল্ডারে চলে যান এবং templates নামে একটি ফোল্ডার তৈরি করুন। templates-এর ভিতরে index.html নামে একটি ফাইল তৈরি করুন। index.html ওপেন করুন এবং নিচের এইচটিএমএল যোগ করুন:

app.py ওপেন করুন এবং render_template ইম্পোর্ট করুন। এটি আমরা টেম্পলেট ফাইলগুলো রেন্ডার করার কাজে লাগাবো।

রেন্ডার করা টেম্পলেট ফাইল ফিরিয়ে নিতে মূল প্রক্রিয়াটি পরিবর্তন করুন।

পরিবর্তনগুলো সেভ করে রাখুন এবং সার্ভার রিস্টার্ট দিন। আপনার ব্রাউজার http://localhost:5000/-এ তাক করুন। এখন আপনি নিচের স্ক্রিনটি পাবেন:

Bucket List App home page

সাইন আপ পেইজ তৈরি করা

ধাপ ১: ডাটাবেজ সেট করা

আমরা ব্যাক এন্ড হিসেবে MySQL ব্যবহার করবো। কাজেই কমান্ড লাইন থেকে মাইএসকিউএলে লগইন করুন। অথবা আপনি চাইলে মাইএসকিউএল ওয়ার্ক বেঞ্চের মতো জিইউআই ব্যবহার করতে পারেন। প্রথমে, BucketList নামের একটি ডাটাবেজ তৈরি করুন। কমান্ড লাইন থেকে পাওয়া:

প্রয়োজনীয় পাসওয়ার্ড প্রবেশ করান এবং লগইন করার পর ডাটাবেজ তৈরি করতে নিচের কমান্ড চালু করুন:

একবার ডাটাবেজ তৈরি হয়ে গেলে নিচে যেভাবে দেখানো হয়েছে সেভাবে tbl_user নামে একটি টেবিল তৈরি করুন:

মাইএসকিউএল ডাটাবেজের সাথে কাজ করার জন্য আমরা পাইথন অ্যাপ্লিকেশনে Stored procedures ব্যবহার করবো। কাজেই, একবার tbl_user টেবিলটি তৈরি হয়ে গেলে ব্যবহারকারীদের সাইন আপ করানোর জন্য sp_createUser নামে স্টোরড প্রসিডিউর তৈরি করুন।

tbl_user টেবিলে ব্যবহারকারী তৈরি করার জন্য স্টোরড প্রসিডিউর তৈরি করতে হলে প্রথমে দেখে নিতে হবে একই username ব্যবহারকারী ইতোমধ্যে আছে কি না। যদি থেকে থাকে তাহলে ব্যবহারকারীকে এরর দেখানো হবে। আর না থাকলে আমরা ইউজার টেবিলে নতুন এই ব্যবহারকারীকে যুক্ত করবো। স্টোরড প্রসিডিউর sp_createUser দেখতে এমন হবে:

ধাপ ২: একটি সাইন আপ ইন্টারফেস তৈরি করুন

PythonApp/templates ডিরেক্টরিতে চলে যান এবং signup.html নামে একটি এইচটিএমএল ফাইল তৈরি করুন। signup.html-এ নিচের এইচটিএমএল কোড যোগ করে দিন:

সেই সাথে নিচের CSS signup.css হিসেবে PythonApp-এর ভিতরে স্থায়ী ফোল্ডার হিসেবে যুক্ত করুন।

/showSignUp-এ কোন আবেদন আসলে সাইন আপ পেইজটি রেন্ডার করার জন্য app.py-তে showSignUp নামে আরেকটি প্রক্রিয়া যোগ করুন:

পরিবর্তনগুলো সেভ করে রাখুন এবং সার্ভার রিস্টার্ট দিন। হোম পেইজের সাইন আপ বাটনে ক্লিক করুন এবং আপনার সাইন আপ পেইজটি তাহলে এমন দেখাবে:

Sign Up user page

ধাপ ৩: একটি সাইন আপ প্রক্রিয়া প্রয়োগ করুন

এরপর, মাইএসকিউএল ডাটাবেজের সাথে কাজ করতে আমাদের ইউআই-এর জন্য একটি সার্ভার-সাইড প্রক্রিয়া লাগবে। কাজেই PythonApp-এ চলে যান এবং app.py ওপেন করুন। signUp নামে একটি নতুন প্রক্রিয়া তৈরি করুন এবং সাথে একটি রুট /signUp যোগ করুন। দেখুন কেমন দেখা যায়:

signUp প্রক্রিয়াতে আমাদের সাইন আপ ডাটা পোস্ট করার জন্য জেকোয়েরি অ্যাজাক্স ব্যবহার করবো। কাজেই আমরা রুটের সংগায় প্রক্রিয়াটি নির্দিষ্ট করে দিবো।

পোস্ট করা ভ্যালুগুলো পড়ার জন্য আমাদের ফ্লাস্ক থেকে request ইম্পোর্ট করতে হবে।

request ব্যবহার করে আমরা নিচে যেভাবে দেখানো হয়েছে সেভাবে পোস্ট করা ভ্যালুগুলো দেখতে পারবো।

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

সেই সাথে ফ্লাস্ক থেকে json ইম্পোর্ট করা হবে যেহেতু আমরা json ডাটা ফিরিয়ে নেওয়ার জন্য এটিকে উপরের কোডে ব্যবহার করছি।

ধাপ ৪: একটি সাইন আপ রিকোয়েস্ট তৈরি করুন

আমরা পাইথন প্রক্রিয়ায় সাইন আপ রিকোয়েস্ট পাঠানোর জন্য জেকোয়েরি অ্যাজাক্স ব্যবহার করবো। jQuery ডাউনলোড করুন এবং PythonApp/static/js-এর ভিতরে স্থাপন করুন। সাইন আপ পেইজ থেকে এখানে একটি লিঙ্ক যোগ করুন। জেকোয়েরি যোগ করা হয়ে গেলে ব্যবহারকারী যখন Sign Up বাটন ক্লিক করবেন তখন একটি জেকোয়েরি POST রিকোয়েস্ট যোগ করবো।

কাজেই, যেভাবে দেখানো হয়েছে সেভাবে সাইন আপ বাটন ক্লিক ইভেন্টটি যুক্ত করে দেই:

সবগুলো পরিবর্তন সেভ করুন এবং সার্ভার রিস্টার্ট করুন। সাইন আপ পেইজ থেকে বিস্তারিত লিখুন এবং সাইন আপে ক্লিক করুন। ব্রাউজার কনসোল দেখুন। সেখানে নিচের বার্তাটি থাকবে:

ধাপ ৫: মাইএসকিউএল স্টোরড প্রসিডিউর কল করুন

একবার আমরা name, email address এবং password পেয়ে গেলে সহজেই মাইএসকিউএল স্টোরড প্রসিডিউরে কল করে নতুন ইউজার তৈরি করা যাবে।

মাইএসকিউএলের সাথে যুক্ত হতে হলে আমরা ফ্লাস্ক এক্সটেনশন ফ্লাস্ক-মাইএসকিউএল ব্যবহার করবো। Flask-MySQL দিয়ে কাজ শুরু করতে চাইলে pip প্যাকেজ ম্যানেজার ব্যবহার করে এটিকে ইন্সটল করুন:

app.py-এর ভিতরে মাইএসকিউএল ইম্পোর্ট করুন:

এর আগে আমরা আমাদের অ্যাপটিকে নিচের মতো করে ডিফাইন করেছিলাম:

তার সাথে নিচের মাইএসকিউএল কনফিগারেশন যোগ করুন:

প্রথমে, মাইএসকিউএল সংযোগ স্থাপন করে নিন:

একবার সংযোগ স্থাপন হয়ে গেলে আমাদের স্টোরড প্রসিডিউর কোয়েরি করার জন্য একটি cursor লাগবে। কাজেই, conn সংযোগ ব্যবহার করে একটি কার্সর তৈরি করে ফেলুন।

ইউজার তৈরির স্টোরড প্রসিডিউর চালু করার আগে ওয়ের্কজিউগের সরবরাহকৃত সহায়তাকারী ব্যবহার করে পাসওয়ার্ডটিকে সাংকেতিক করে ফেলি। app.py-এর ভিতরে মডিউলটি ইম্পোর্ট করুন:

সাংকেতিক মডিউল ব্যবহার করে হ্যাশড পাসওয়ার্ড তৈরি করুন।

এখন, চলুন sp_createUser প্রসিডিউর চালু করি:

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

পরিবর্তনগুলো সেভ করুন এবং সার্ভার রিস্টার্ট করুন। সাইন আপ পেইজে যান এবং name, email address এবং password প্রবেশ করান। তারপর সাইন আপ বাটনে ক্লিক করুন। সফলভাবে ইউজার তৈরি করা হলে আপনি আপনার ব্রাউজার কনসোলে একটি বার্তা দেখতে পাবেন।

সমাপ্তি টানা

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

এই টিউটোরিয়ালের সোর্স কোড গিটহাবে পাওয়া যাবে।

নিচের কমেন্টে আপনাদের মতামত জানাতে ভুলবেন না!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.