এখানে Flask এর শুধু মাত্র বেসিক কিছু জিনিস দেখানো হবে । বিগিনার যারা শুধু তাদের জন্য ।

তো flask মেইনলি কি করে । Flask কোন সাইট অথবা মোবাইল অ্যাপ এর জন্য backend হিসেবে কাজ করে । লাইক সহজ ভাষায় ধর তোমার একটা মোবাইল অ্যাপ আছে । এখন তুমি এইটা কে একটা ডাটাবেস এর সাথে connect করতে চাও। Connect করা মানে কি ? ধর তোমার ডাটাবেস থেকে তুমি user এর ডাটা নিতে চাও। Or চাও যে কোন user কে resigter করাবা মানে তার দেয়া ডাটা তুমি স্টোর করবা। তখন তোমার backend language এর হেল্প নেওয়া লাগবে।

তো এই সব backend framework এর মধ্যে একটি হল Flask. মেইনলি এর core language হল python. আমাদের এখন মনে প্রশ্ন আসতে পারে যে, what is backend? Backend কে আমরা বলতে যে server side language. তার মানে যা দিয়ে আমরা সার্ভার অথবা ডাটাবেস এর সাথে কানেক্ট করতে পারি। তো আবার যদি মনে প্রশ্ন আসে যে, what is server? তাহলে ওই টার ব্যাখ্যা পরে দেওয়া আছে।

তো শুরু করা যাক।

আমি আজকে মেইনলি দেখাব flask দিয়ে কিভাবে রেস্ট এ. পি. আই. (Rest API) বানান যায়। আগে তো জানতে হবে যে, what is Rest API?

Rest API এর অনেক ফর্মাল কঠিন ডেফিনেস্নস আছে। আমরা ওই দিক এ না যেয়ে সহজ ভাষায় বলি। Rest API মেইনলি ছোট ছোট মডিউল এ ভাগ করা কিছু ফাংশন চিন্তা করতে পারি। ধরি ডাটা আনার জন্য একটা ফাংশন, ডাটা সেভ করার জন্য একটা ফাংশন। আমরা আলাদা আলাদা লিঙ্ক অথবা মেথড use করে ওই সব ফাংশন গুলাকে call দিয়ে ডাটা নিয়ে আসব অথবা সেভ করব অথবা ডিলিট করব। তো মেইনলি যা হল, Rest API দিয়ে আমরা কিছু ফাংশন কে call দিতে পারব যা আমাদের online server এ থাকবে

তো 1st এ flask দিয়ে hello world লেখার ট্রাই করি।। সব কিছু এর শুরু তো hello world দিয়েই হয় 😜

এটাই মূলত flask এর বেসিক structure. তো আমরা একটা একটা করে ব্রেকডাউন করি।

from flask import Flask

এটা দিয়ে আমরা flask import করতেছি। এর জন্য তোমার আগে flask install করে নিতে হবে তোমার সিস্টেম এ। এর জন্য তোমরা pip দিয়ে অনেক সহজেই করতে পার।

pip install flask

এই কমান্ড রান করলেই install হয়ে গেল flask.

app = Flask(__name__)

এটা দিয়ে আমরা একটি flask টাইপ এর variable ডিক্লেয়ার করতেছি। ‘name’ হল python এর একটা built-in variable. এটা দিয়ে main function কে রান করতে বলা হচ্ছে, যখন flask রান করবে।

    @app.route('/', methods=['GET'])
    def hello_world():
        return "hello world"

এটা দিয়ে বলা হচ্ছে যে root লিঙ্ক এ গেলে কি হবে। root লিঙ্ক এ গেলে মেইনলি তার পরের function টা call হবে। methods এ আমরা মেইনলি বলব যে আমরা যখন call করব তখন ওই টা কি টাইপ এর method হবে। যেহুতু এটা একটা GET মেথড, so এটা মেইনলি কিছু রিটার্ন করবে। আমাদের ক্ষেত্রে সেটা হল ১ টা string — “hello world”. এটাই পরে আমাদের browser এ শো করবে।

কি কি টাইপ এর মেথড হতে পারে তার একটা বেসিক idea নিচে দিচ্ছি। বেসিক্যালি ৪ টাইপ এর মেথড হতে পারে।

  1. GET — এই মেথড দিয়ে আমরা মেইনলি কোন ডাটা আনতে পারি ডাটাবেস থেকে।

  2. POST — এই মেথড দিয়ে আমরা কিছু ডাটা পাঠাই এবং ওই ডাটা ডাটাবেস এ সেভ করি।

  3. DELETE — এই মেথড এর নাম দেখেই আমরা বুঝতে পারছি যে এটা দিয়ে আমরা ডাটাবেস থেকে কিছু অথবা একটি ডাটা delete করতে পারি।

  4. PATCH — এই মেথড দিয়ে আমরা ডাটাবেস এর কোন ডাটা change করে update করতে পারি।

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

if __name__ == '__main__':
    app.run(debug=True)

এটা কে বলা যায় যে python এর মেইন function. কোন script রান করলে 1st এ এইখান থেকে রান করা শুরু করে।

তো আমরা এখন এই script টা রান করি। এর জন্য আমাদের যে command use করতে হবে তা হল।

python app.py

এখানে app.py হল আমার script এর নাম।

তো এই টা রান করার পরে একটা লিঙ্ক আসবে (127.0.0.1:5000). মেইনলি ওই লিঙ্ক এ গেলেই আমরা আমাদের তৈরি sever access করতে পারব। So এখন আমাদের প্রধান প্রশ্ন হল what is server? Server হল যেখানে আমরা আমাদের code deploy করে রাখি। এবং আমাদের server worldwide available থাক। তো আমরা বলতে পারি যে তাহলে কি আমাদের এই server ও worldwide available? না আসলে, কারণ আমরা মেইনলি লোকাল সার্ভারে কোড চেক করি। পরে অনলাইন সার্ভারে আপ করি। এই সার্ভার লিঙ্ক থেকেই আমরা বাকি সব ফাংশন accesss করতে পারব। তা দেখব আমরা পরের পর্বে।

ওই লিঙ্ক এ ক্লিক করলে, আমরা একটা পেজ এ নিয়ে যাবে, যেইখানে আমাদের “hello world” দেখাবে, যেটা আমরা আমাদের GET ফাংশন থেকে রিটার্ন করেছিলাম। So we have made our first server using flask. এখন তোমরা চাইলে hello_world ফাংশন টা কিছু change করে দেখতে পার।

পরের পর্বে আমরা দেখব কিভাবে অন্য মেথড use করতে পারি এবং postman নামক একটা tool দিয়ে কিভাবে আমাদের Rest API গুলা চেক করতে পারি যে কাজ হচ্ছে।

যদি আপনাদের কোন প্রব্লেম হয় কোন যায়গা বুঝতে অথবা কোন সাজেশনস থাকে তাহলে প্লিজ কমেন্ট এ জানাবেন।

About the Author

I am currently a Full Stack Software Engineer at Sapien.Network. I also do researches on Deep Learning, Natural Language Processing, Bioinformatics. Besides these, I am a Founder and CTO of Helix Development Inc.

Follow me on Medium and check out my personal website here. You can also connect with me on LinkedIn, Twitter or Facebook.