Flask অ্যাপ্লিকেশনে SQLAlchemy সাধারণত রিলেশনাল ডাটাবেস যেমন MySQL, PostgreSQL ইত্যাদি ব্যবহারের জন্য ডিজাইন করা হয়, তবে MongoDB একটি NoSQL ডাটাবেস, যা SQLAlchemy-র মাধ্যমে সরাসরি সংযুক্ত করা সম্ভব নয়। তবে, SQLAlchemy ব্যবহার না করেও Flask অ্যাপ্লিকেশনে MongoDB ইন্টিগ্রেট করা সম্ভব। MongoDB এর জন্য সবচেয়ে জনপ্রিয় লাইব্রেরি হল Flask-PyMongo।
যেহেতু আপনি SQLAlchemy-এর সাথে MongoDB ইন্টিগ্রেশন জানতে চাচ্ছেন, আমি আপনাকে MongoDB এর সাথে কাজ করার জন্য অন্য উপায়ে Flask এর সাহায্যে কিভাবে কাজ করা যায় তা বুঝিয়ে দেব।
এখানে আমি Flask-PyMongo ব্যবহার করে MongoDB ইন্টিগ্রেট করার কৌশল দেখাবো:
১. Flask-PyMongo ইন্সটল করা
প্রথমেই Flask-PyMongo ইন্সটল করতে হবে:
pip install Flask-PyMongo
২. Flask অ্যাপ্লিকেশন সেটআপ
এখন Flask অ্যাপ্লিকেশন তৈরি করে MongoDB সংযোগ স্থাপন করা যাক:
from flask import Flask, jsonify, request
from flask_pymongo import PyMongo
app = Flask(__name__)
# MongoDB URI কনফিগারেশন
app.config["MONGO_URI"] = "mongodb://localhost:27017/your_database_name"
# PyMongo ইন্সট্যান্স তৈরি
mongo = PyMongo(app)
# রুট তৈরি
@app.route('/')
def home():
return "Welcome to Flask with MongoDB!"
# MongoDB এ ডাটা ইনসার্ট করা
@app.route('/add_data', methods=['POST'])
def add_data():
data = request.json
mongo.db.your_collection_name.insert_one(data)
return jsonify(message="Data added successfully"), 201
# MongoDB থেকে ডাটা রিট্রিভ করা
@app.route('/get_data', methods=['GET'])
def get_data():
data = mongo.db.your_collection_name.find()
result = []
for item in data:
result.append({'_id': str(item['_id']), 'name': item['name'], 'age': item['age']})
return jsonify(result)
if __name__ == "__main__":
app.run(debug=True)
৩. MongoDB Configuration
এখানে MONGO_URI এর মাধ্যমে MongoDB সংযোগ স্থাপন করা হচ্ছে। আপনি আপনার MongoDB এর URI এখানে দিতে হবে, যেমনঃ
app.config["MONGO_URI"] = "mongodb://localhost:27017/your_database_name"
এখানে your_database_name হল MongoDB ডাটাবেসের নাম।
৪. Flask Routes ব্যাখ্যা
/রুট: এটা একটি সাধারণ রুট, যা Flask অ্যাপ্লিকেশনটি চালু হলে "Welcome to Flask with MongoDB!" মেসেজ দেখাবে।/add_dataরুট: এই রুটটিPOSTরিকুয়েস্ট গ্রহণ করে এবং JSON ডাটা MongoDB তেyour_collection_nameনামক কলোকশনে ইনসার্ট করে।/get_dataরুট: এই রুটটি MongoDB থেকেyour_collection_nameনামক কলোকশন থেকে ডাটা রিট্রিভ করে এবং JSON আউটপুট হিসেবে রিটার্ন করে।
৫. MongoDB স্ট্রাকচার
MongoDB হল NoSQL ডাটাবেস, যা ডকুমেন্ট-ভিত্তিক এবং JSON অনুরূপ ডাটা স্টোর করে। প্রতিটি ডকুমেন্টের মধ্যে _id ফিল্ড থাকে, যা স্বয়ংক্রিয়ভাবে তৈরি হয়। উপরের উদাহরণে, ডাটার মধ্যে 'name' এবং 'age' ফিল্ডস রাখা হয়েছে, তবে আপনি আপনার প্রয়োজন অনুযায়ী যেকোনো ফিল্ড যুক্ত করতে পারেন।
৬. Flask অ্যাপ চালানো
এখন, আপনার Flask অ্যাপ চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
python app.py
আপনি তারপর ব্রাউজারে বা API টুল যেমন Postman দিয়ে /add_data এবং /get_data রুটগুলো পরীক্ষা করতে পারেন।
MongoDB এবং SQLAlchemy
যেহেতু MongoDB NoSQL ডাটাবেস এবং SQLAlchemy মূলত রিলেশনাল ডাটাবেসের জন্য, আপনি SQLAlchemy ব্যবহার করতে পারবেন না MongoDB-র সাথে কাজ করার জন্য। তবে, Flask অ্যাপ্লিকেশনে যদি রিলেশনাল ডাটাবেস এবং MongoDB একসাথে ব্যবহার করতে চান, তাহলে আপনি SQLAlchemy এবং Flask-PyMongo একসাথে ব্যবহার করতে পারেন।
এভাবে আপনি রিলেশনাল ডাটাবেসের জন্য SQLAlchemy এবং NoSQL ডাটাবেসের জন্য Flask-PyMongo ব্যবহার করে একাধিক ডাটাবেসের সাথে Flask অ্যাপ্লিকেশন তৈরি করতে পারবেন।
সারাংশ
MongoDB ইন্টিগ্রেট করার জন্য Flask-PyMongo একটি সহজ এবং কার্যকর পদ্ধতি। SQLAlchemy MongoDB-এর জন্য উপযুক্ত নয়, কারণ SQLAlchemy রিলেশনাল ডাটাবেসের জন্য ডিজাইন করা হয়েছে। MongoDB ইন্টিগ্রেট করতে Flask-PyMongo ব্যবহার করা খুবই সুবিধাজনক এবং কোডটি পরিষ্কার রাখে।
Read more