Flask একটি মাইক্রোফ্রেমওয়ার্ক, যা সহজেই NoSQL ডাটাবেস যেমন MongoDB-এর সাথে ইন্টিগ্রেট করা যায়। NoSQL ডাটাবেস সাধারণত এমন ডাটাবেস, যা রিলেশনাল ডাটাবেসের মতো টেবিলের কাঠামো ব্যবহার না করে, বরং ডকুমেন্ট, কী-ভ্যালু জোড়া, গ্রাফ বা কলাম-ওরিয়েন্টেড স্টোর ব্যবহার করে।
এই টিউটোরিয়ালে Flask অ্যাপ্লিকেশনে MongoDB ব্যবহার করার প্রক্রিয়া দেখানো হবে, যা একটি জনপ্রিয় NoSQL ডাটাবেস।
১. Flask এর সাথে MongoDB সেটআপ
ধাপ ১: MongoDB ইনস্টল করা
- MongoDB ডাউনলোড করুন: MongoDB এর অফিসিয়াল ওয়েবসাইট থেকে আপনার অপারেটিং সিস্টেম অনুযায়ী MongoDB ডাউনলোড করুন:
MongoDB ডাউনলোড MongoDB সার্ভার চালু করুন: MongoDB সার্ভার চালু করতে আপনার টার্মিনালে নিচের কমান্ড ব্যবহার করুন:
mongod
এটি আপনার লোকাল মেশিনে MongoDB সার্ভার চালু করবে (ডিফল্ট পোর্ট: 27017)।
ধাপ ২: Flask-এ MongoDB এর জন্য প্যাকেজ ইনস্টল করা
MongoDB ব্যবহার করতে Flask-এ Flask-PyMongo প্যাকেজ ব্যবহার করা হয়। এটি MongoDB-এর সাথে Flask-এর ইন্টিগ্রেশন সহজ করে।
pip install flask-pymongo
২. Flask অ্যাপ্লিকেশন তৈরি করা MongoDB এর সাথে সংযোগ করতে
উদাহরণ: app.py
from flask import Flask, render_template, request, jsonify
from flask_pymongo import PyMongo
app = Flask(__name__)
# MongoDB এর URI কনফিগারেশন
app.config["MONGO_URI"] = "mongodb://localhost:27017/myDatabase"
# PyMongo ইনিশিয়ালাইজ
mongo = PyMongo(app)
@app.route('/')
def home():
return "Flask MongoDB এর সাথে সংযুক্ত!"
@app.route('/add', methods=['POST'])
def add_user():
# ফর্ম থেকে ডেটা নেওয়া
name = request.form['name']
email = request.form['email']
# MongoDB এ ডেটা ইনসার্ট করা
user_collection = mongo.db.users
user_collection.insert_one({'name': name, 'email': email})
return jsonify({"message": "User added successfully!"})
@app.route('/users')
def get_users():
# MongoDB থেকে সব ইউজার পাওয়া
user_collection = mongo.db.users
users = user_collection.find()
user_list = []
for user in users:
user_list.append({'name': user['name'], 'email': user['email']})
return jsonify(user_list)
if __name__ == '__main__':
app.run(debug=True)
কোড ব্যাখ্যা:
MONGO_URI: এটি MongoDB সার্ভারের URI নির্দেশ করে, যেখানে আপনার ডাটাবেস সংরক্ষিত থাকবে।"mongodb://localhost:27017/myDatabase": এটি লোকালহোস্টে MongoDB চালু হওয়া ডাটাবেসের URI।
mongo = PyMongo(app): এটি Flask অ্যাপ্লিকেশনটি MongoDB এর সাথে সংযুক্ত করে।mongo.db.users: এটি MongoDB-রusersনামে একটি কলেকশন (Collection) তৈরি বা অ্যাক্সেস করে।insert_one(): MongoDB কলেকশনে একটি নতুন ডকুমেন্ট ইনসার্ট করতে ব্যবহৃত হয়।find(): MongoDB কলেকশন থেকে ডেটা বের করার জন্য ব্যবহৃত হয়।
৩. MongoDB কলেকশন ডাটাবেসের কাঠামো
MongoDB একটি ডকুমেন্ট-ভিত্তিক ডাটাবেস, তাই এখানে ডেটা টেবিলের পরিবর্তে ডকুমেন্ট হিসেবে সংরক্ষিত থাকে। প্রতিটি ডকুমেন্টের মধ্যে কীগুলির মাধ্যমে মান (key-value pairs) সংরক্ষিত থাকে।
এখানে users কলেকশন হতে পারে:
{
"_id": ObjectId("604c7f8d9d1c2b1e3c8b4576"),
"name": "John Doe",
"email": "johndoe@example.com"
}
_id: MongoDB স্বয়ংক্রিয়ভাবে প্রতিটি ডকুমেন্টের জন্য একটি ইউনিক আইডি তৈরি করে।
৪. HTML ফর্ম তৈরি করে MongoDB-এ ডেটা ইনপুট করা
আপনি একটি HTML ফর্ম তৈরি করে MongoDB-তে ডেটা ইনপুট করতে পারেন।
উদাহরণ: form.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MongoDB with Flask</title>
</head>
<body>
<h1>MongoDB ফর্ম</h1>
<form action="/add" method="POST">
<label for="name">নাম:</label>
<input type="text" id="name" name="name"><br><br>
<label for="email">ইমেইল:</label>
<input type="email" id="email" name="email"><br><br>
<input type="submit" value="সাবমিট">
</form>
</body>
</html>
এই ফর্মের মাধ্যমে ব্যবহারকারী নাম এবং ইমেইল ইনপুট করবে, যা Flask অ্যাপ্লিকেশনে সাবমিট করা হবে এবং MongoDB ডাটাবেসে সংরক্ষিত হবে।
৫. MongoDB থেকে ডেটা রিটার্ভ করা
MongoDB থেকে ডেটা রিটার্ভ করার জন্য আপনি find() মেথড ব্যবহার করতে পারেন। উদাহরণ হিসেবে, /users রাউটে সমস্ত ইউজারদের ডেটা JSON ফরম্যাটে প্রদর্শন করা হবে।
@app.route('/users')
def get_users():
# MongoDB থেকে সব ইউজার পাওয়া
user_collection = mongo.db.users
users = user_collection.find()
user_list = []
for user in users:
user_list.append({'name': user['name'], 'email': user['email']})
return jsonify(user_list)
এখানে, find() সমস্ত ইউজারের ডেটা MongoDB থেকে বের করে এনে JSON ফরম্যাটে রিটার্ন করবে।
৬. MongoDB এর সাথে নিরাপত্তা এবং অন্যান্য কনফিগারেশন
আপনি MongoDB ব্যবহার করার সময় কিছু নিরাপত্তা কনফিগারেশন অনুসরণ করতে পারেন:
- এনক্রিপশন: MongoDB ডাটাবেসের মধ্যে সংবেদনশীল তথ্য এনক্রিপ্ট করা।
- অথেনটিকেশন: MongoDB ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণ করা।
- Firewall & Network: শুধুমাত্র নির্দিষ্ট IP অ্যাড্রেস থেকে MongoDB সার্ভারে অ্যাক্সেস প্রদান করা।
Flask-এর সাথে MongoDB ব্যবহার করা সহজ এবং নমনীয়। Flask-PyMongo লাইব্রেরি MongoDB এর সাথে সহজে ইন্টিগ্রেশন করতে সহায়তা করে। MongoDB ডাটাবেসে ডেটা সংরক্ষণ, রিটার্ন করা এবং ফর্মের মাধ্যমে ডেটা ইনপুট করার প্রক্রিয়া Flask অ্যাপ্লিকেশনে খুবই সহজ। MongoDB-এর অর্ডারলেস স্টোরেজ এবং স্কেলেবিলিটি Flask অ্যাপ্লিকেশনে ব্যবহারকারী ডেটা সংরক্ষণের জন্য উপযুক্ত একটি সমাধান প্রদান করে।