Flask এবং MongoDB একটি শক্তিশালী কনবিনেশন, যেখানে Flask একটি মাইক্রোফ্রেমওয়ার্ক হিসেবে কাজ করে এবং MongoDB একটি NoSQL ডাটাবেস হিসেবে ডাটা সংরক্ষণ করে। MongoDB তার স্কিমা-কম (schema-less) প্রকৃতির জন্য পরিচিত, যা ডেভেলপারদের ডাটা ফ্লেক্সিবিলিটি দেয়। Flask এবং MongoDB ইন্টিগ্রেট করার মাধ্যমে আপনি সহজে ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন।
১. MongoDB ইনস্টলেশন
MongoDB ব্যবহার করার জন্য প্রথমে আপনার সিস্টেমে MongoDB এবং প্রয়োজনীয় Python প্যাকেজ ইনস্টল করতে হবে।
১.১ MongoDB ইনস্টলেশন
MongoDB ইন্সটল করতে MongoDB Download Center থেকে আপনার সিস্টেমের জন্য উপযুক্ত MongoDB ভার্সন ডাউনলোড করুন এবং সেটআপ করুন। আপনি যদি Docker ব্যবহার করেন, তবে MongoDB এর Docker image ব্যবহার করতে পারেন।
docker run --name mongodb -d -p 27017:27017 mongo
১.২ Python প্যাকেজ ইনস্টলেশন
MongoDB-এ Flask অ্যাপ্লিকেশন কানেক্ট করার জন্য PyMongo বা Flask-PyMongo প্যাকেজ ব্যবহার করা হয়।
pip install flask pymongo
- PyMongo হল MongoDB-এর জন্য Python লাইব্রেরি।
- Flask-PyMongo Flask-এর জন্য একটি এক্সটেনশন, যা MongoDB-এর সাথে সংযোগ স্থাপন সহজ করে।
২. Flask অ্যাপ্লিকেশন তৈরি এবং MongoDB Integration
২.১ Flask অ্যাপ তৈরি করা
from flask import Flask, render_template, request, jsonify
from flask_pymongo import PyMongo
app = Flask(__name__)
# MongoDB সংযোগের জন্য কনফিগারেশন
app.config["MONGO_URI"] = "mongodb://localhost:27017/mydatabase" # MongoDB URI
# PyMongo সেটআপ
mongo = PyMongo(app)
@app.route('/')
def home():
return "Flask এবং MongoDB ইন্টিগ্রেটেড অ্যাপ!"
@app.route('/add', methods=['POST'])
def add_data():
if request.method == 'POST':
# MongoDB-এ ডাটা অ্যাড করা
name = request.form['name']
age = request.form['age']
mongo.db.users.insert_one({'name': name, 'age': age})
return jsonify({"message": "Data added successfully!"})
@app.route('/get', methods=['GET'])
def get_data():
# MongoDB থেকে ডাটা রিট্রিভ করা
users = mongo.db.users.find()
user_list = []
for user in users:
user_list.append({'name': user['name'], 'age': user['age']})
return jsonify(user_list)
if __name__ == '__main__':
app.run(debug=True)
কোড ব্যাখ্যা:
app.config["MONGO_URI"]: এটি MongoDB সার্ভারের URI নির্দেশ করে। এখানে"mongodb://localhost:27017/mydatabase"নির্দেশ করে যে MongoDB সার্ভার লোকালহোস্টে চলছে এবংmydatabaseনামে একটি ডাটাবেস ব্যবহার করা হচ্ছে।mongo = PyMongo(app): এটি Flask অ্যাপ্লিকেশনের সাথে PyMongo এক্সটেনশন যুক্ত করে।/addরুট: এটি POST মেথডে MongoDB-তে ডাটা ইনসার্ট করার জন্য ব্যবহার করা হয়।/getরুট: এটি GET মেথডে MongoDB থেকে ডাটা রিট্রিভ করে JSON আউটপুট প্রদান করে।
৩. MongoDB Database Operations
৩.১ ডাটা ইনসার্ট (Insert Data)
MongoDB-তে নতুন ডাটা যোগ করতে হলে insert_one() অথবা insert_many() মেথড ব্যবহার করা হয়।
# একক ডাটা ইনসার্ট
mongo.db.users.insert_one({'name': 'John', 'age': 30})
# একাধিক ডাটা ইনসার্ট
mongo.db.users.insert_many([{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 22}])
৩.২ ডাটা ফেচ (Fetch Data)
MongoDB থেকে ডাটা ফেচ করতে find() মেথড ব্যবহার করা হয়। একক রেকর্ড ফেচ করার জন্য find_one() ব্যবহার করা যেতে পারে।
# সব ইউজার ফেচ
users = mongo.db.users.find()
# নির্দিষ্ট একটি ইউজার ফেচ
user = mongo.db.users.find_one({'name': 'John'})
৩.৩ ডাটা আপডেট (Update Data)
MongoDB-তে ডাটা আপডেট করতে update_one() অথবা update_many() মেথড ব্যবহার করা হয়।
# একটি রেকর্ড আপডেট
mongo.db.users.update_one({'name': 'John'}, {'$set': {'age': 31}})
৩.৪ ডাটা ডিলিট (Delete Data)
MongoDB থেকে ডাটা ডিলিট করতে delete_one() অথবা delete_many() মেথড ব্যবহার করা হয়।
# একটি রেকর্ড ডিলিট
mongo.db.users.delete_one({'name': 'John'})
# একাধিক রেকর্ড ডিলিট
mongo.db.users.delete_many({'age': {'$lt': 30}})
৪. MongoDB এবং Flask অ্যাপ্লিকেশনে Error Handling
MongoDB সংযোগে সমস্যা হলে Flask-এ সঠিক error handling করা অত্যন্ত গুরুত্বপূর্ণ। নিচে MongoDB সংযোগের সমস্যা এবং ডাটা অপারেশনের জন্য একটি error handling উদাহরণ দেওয়া হলো:
@app.route('/add', methods=['POST'])
def add_data():
try:
name = request.form['name']
age = request.form['age']
mongo.db.users.insert_one({'name': name, 'age': age})
return jsonify({"message": "Data added successfully!"})
except Exception as e:
return jsonify({"error": str(e)}), 400
এখানে, যদি MongoDB সংযোগ বা ইনসার্ট অপারেশন সফল না হয়, তবে একটি 400 error প্রদর্শিত হবে।
৫. Flask অ্যাপ্লিকেশনে MongoDB-র নিরাপত্তা
MongoDB ইন্টিগ্রেট করার সময় নিরাপত্তার দিকে খেয়াল রাখা জরুরি। MongoDB-র সাথে Flask অ্যাপ্লিকেশন ব্যবহারের জন্য আপনি নিশ্চিত করতে পারেন:
- MongoDB authentication: MongoDB সার্ভারে ইউজার authentication সেট করা।
- Firewall: MongoDB-তে ফায়ারওয়াল কনফিগারেশন করা যাতে বাইরের অ্যাক্সেস সীমিত থাকে।
- Encryption: MongoDB ডেটা এনক্রিপ্ট করা।
Flask এবং MongoDB-এর ইন্টিগ্রেশন আপনাকে শক্তিশালী এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। Flask মাইক্রোফ্রেমওয়ার্ক হিসেবে MongoDB-এর সাথে একটি সিম্পল এবং নমনীয় ডাটাবেস কনফিগারেশন প্রদান করে, যা ডেভেলপারদের দ্রুত ডেভেলপমেন্টের সুযোগ দেয়। Flask অ্যাপ্লিকেশনে MongoDB ব্যবহার করার মাধ্যমে আপনি সহজেই ডাইনামিক ডেটা পরিচালনা করতে পারবেন এবং উন্নত পারফরম্যান্স পেতে পারেন।
Flask-PyMongo হলো একটি Flask এক্সটেনশন যা MongoDB-এর সাথে সহজে ইন্টিগ্রেট করার সুবিধা প্রদান করে। এটি MongoDB-এর সাথে কাজ করার জন্য PyMongo লাইব্রেরি ব্যবহার করে এবং Flask অ্যাপ্লিকেশনের মধ্যে MongoDB সংযোগ সহজ করে।
MongoDB হলো একটি NoSQL ডাটাবেস, যা ডকুমেন্ট ভিত্তিক ডাটাবেস হিসেবে পরিচিত। এটি ডাটা সংরক্ষণ, ম্যানিপুলেশন এবং কোয়েরি করার জন্য অনেক শক্তিশালী এবং নমনীয় পদ্ধতি সরবরাহ করে।
Flask-PyMongo ইন্টিগ্রেশন: স্টেপ বাই স্টেপ গাইড
১. প্রাথমিক সেটআপ
ধাপ ১: Flask-PyMongo ইনস্টলেশন
প্রথমে, Flask-PyMongo ইনস্টল করতে হবে। এটি pip কমান্ডের মাধ্যমে ইনস্টল করা যায়।
pip install Flask-PyMongo
ধাপ ২: MongoDB ইনস্টলেশন
আপনার সিস্টেমে MongoDB ইন্সটল করা থাকতে হবে। আপনি MongoDB কমিউনিটি এডিশন MongoDB ডাউনলোড পেজ থেকে ডাউনলোড এবং ইন্সটল করতে পারেন।
MongoDB চালু করার জন্য:
mongod
এটি MongoDB সার্ভার চালু করবে। সাধারণত এটি localhost:27017 এ চলে।
২. Flask অ্যাপে MongoDB ইন্টিগ্রেট করা
ধাপ ১: Flask অ্যাপ তৈরি করা
একটি নতুন Flask অ্যাপ তৈরি করুন এবং Flask-PyMongo ব্যবহার করে MongoDB কনফিগারেশন সেট করুন।
from flask import Flask, jsonify
from flask_pymongo import PyMongo
app = Flask(__name__)
# MongoDB URI কনফিগারেশন
app.config["MONGO_URI"] = "mongodb://localhost:27017/myDatabase" # আপনার ডাটাবেস URI
# PyMongo ইন্টিগ্রেশন
mongo = PyMongo(app)
@app.route('/')
def home():
return "MongoDB এর সাথে Flask ইন্টিগ্রেটেড!"
if __name__ == "__main__":
app.run(debug=True)
এখানে:
app.config["MONGO_URI"]MongoDB সার্ভারের URI নির্ধারণ করে, যেখানে ডাটাবেসটি সংরক্ষিত হবে।mongo = PyMongo(app)PyMongo এক্সটেনশন Flask অ্যাপ্লিকেশনের সাথে সংযুক্ত করে।
৩. MongoDB থেকে ডেটা পাওয়া এবং সংরক্ষণ করা
ধাপ ১: MongoDB-তে ডেটা ইন্সার্ট করা
Flask অ্যাপ্লিকেশনে একটি রাউট তৈরি করুন যা MongoDB-তে ডেটা ইন্সার্ট করবে।
@app.route('/add')
def add_data():
# MongoDB এর ডেটাবেসে ডেটা ইন্সার্ট করা
users = mongo.db.users # 'users' নামে একটি কলেকশন ব্যবহার করা
users.insert_one({'name': 'John Doe', 'age': 30})
return "ডেটা MongoDB-তে সফলভাবে ইন্সার্ট হয়েছে!"
এখানে:
mongo.db.usersMongoDB ডাটাবেসেরusersনামক কলেকশনের রেফারেন্স।insert_one()MongoDB-তে একটি ডকুমেন্ট ইন্সার্ট করার জন্য ব্যবহৃত হয়।
ধাপ ২: MongoDB থেকে ডেটা রিট্রিভ করা
MongoDB থেকে ডেটা রিট্রিভ করার জন্য Flask অ্যাপে একটি নতুন রাউট তৈরি করুন।
@app.route('/get_users')
def get_users():
users = mongo.db.users.find() # 'users' কলেকশন থেকে সমস্ত ডেটা পাওয়া
output = []
for user in users:
output.append({'name': user['name'], 'age': user['age']})
return jsonify(output)
এখানে:
find()MongoDB-তে সমস্ত ডকুমেন্ট পেতে ব্যবহৃত হয়। এটি একটি কিউরি রিটার্ন করে, যা পরে অ্যারে হিসাবে রূপান্তরিত হয়।jsonify()Flask এর একটি ফাংশন যা ডেটাকে JSON ফরম্যাটে রিটার্ন করে।
৪. MongoDB ডকুমেন্ট আপডেট এবং ডিলিট করা
ধাপ ১: MongoDB ডকুমেন্ট আপডেট করা
MongoDB ডকুমেন্ট আপডেট করার জন্য Flask অ্যাপে একটি রাউট তৈরি করুন।
@app.route('/update/<username>')
def update_user(username):
users = mongo.db.users
users.update_one({'name': username}, {'$set': {'age': 35}})
return f"{username} এর বয়স আপডেট করা হয়েছে!"
এখানে:
update_one()MongoDB ডকুমেন্ট আপডেট করার জন্য ব্যবহৃত হয়। এটি একটি কিউরি এবং আপডেট অপারেশন গ্রহণ করে।
ধাপ ২: MongoDB ডকুমেন্ট ডিলিট করা
MongoDB থেকে ডকুমেন্ট মুছে ফেলার জন্য Flask অ্যাপে একটি রাউট তৈরি করুন।
@app.route('/delete/<username>')
def delete_user(username):
users = mongo.db.users
users.delete_one({'name': username})
return f"{username} মুছে ফেলা হয়েছে!"
এখানে:
delete_one()MongoDB ডকুমেন্ট ডিলিট করার জন্য ব্যবহৃত হয়। এটি একটি কিউরি গ্রহণ করে এবং কিউরি মিলে এমন একটি ডকুমেন্ট মুছে ফেলে।
৫. MongoDB এর সাথে Flask প্রজেক্টের নিরাপত্তা বৃদ্ধি
- MongoDB-তে কনফিগারেশনের সাথে Authentication এবং Authorization ব্যবহার করুন, যাতে শুধুমাত্র অনুমোদিত ইউজারদের অ্যাক্সেস দেয়া যায়।
- Flask-এ Flask-Login ব্যবহার করে ইউজার সেশন ম্যানেজমেন্ট নিশ্চিত করুন।
- MongoDB থেকে ডেটা ফিল্টার এবং স্যানিটাইজ করার জন্য input validation করুন, যেন SQL Injection বা অন্যান্য আক্রমণ থেকে বাঁচানো যায়।
Flask-PyMongo এক্সটেনশন MongoDB-এর সাথে সহজভাবে ইন্টিগ্রেট করতে সহায়তা করে, এবং MongoDB এর সমস্ত মৌলিক অপারেশন যেমন ডেটা ইন্সার্ট, রিট্রিভ, আপডেট এবং ডিলিট খুবই সহজেই Flask অ্যাপ্লিকেশনে বাস্তবায়িত করা যায়। Flask এবং MongoDB-কে একত্রে ব্যবহার করলে আপনি শক্তিশালী, স্কেলেবল এবং নমনীয় অ্যাপ্লিকেশন তৈরি করতে পারেন।
Flask-এ MongoDB এর সাথে কাজ করার জন্য আমরা Flask-PyMongo এক্সটেনশন ব্যবহার করি। MongoDB একটি NoSQL ডাটাবেস, যা ডাটা স্টোর করার জন্য JSON স্টাইলের ডকুমেন্ট ব্যবহার করে। MongoDB-এ ডেটা ম্যানেজমেন্ট করার জন্য সাধারণ CRUD (Create, Read, Update, Delete) অপারেশনগুলো Flask অ্যাপ্লিকেশন দ্বারা খুব সহজে সম্পাদন করা যেতে পারে।
Flask-PyMongo MongoDB এর সাথে Flask অ্যাপ্লিকেশন ইন্টিগ্রেট করার জন্য একটি কার্যকর টুল।
১. Flask-PyMongo ইনস্টলেশন
প্রথমে, Flask-PyMongo ইনস্টল করতে হবে:
pip install flask-pymongo
২. Flask অ্যাপ্লিকেশন তৈরি করা এবং MongoDB ইন্টিগ্রেট করা
এখন একটি Flask অ্যাপ্লিকেশন তৈরি করা হবে, যেখানে MongoDB ডাটাবেসের সাথে CRUD অপারেশন সম্পাদন করা হবে।
উদাহরণ:
from flask import Flask, render_template, request, redirect, url_for
from flask_pymongo import PyMongo
app = Flask(__name__)
# MongoDB সংযোগ সেটআপ
app.config["MONGO_URI"] = "mongodb://localhost:27017/myDatabase" # MongoDB URI
mongo = PyMongo(app)
# মূল রাউট
@app.route("/")
def home():
# MongoDB থেকে সমস্ত ডেটা পড়া
users = mongo.db.users.find()
return render_template("home.html", users=users)
# CREATE (নতুন ইউজার যোগ)
@app.route("/add_user", methods=["POST"])
def add_user():
if request.method == "POST":
name = request.form["name"]
email = request.form["email"]
# MongoDB তে নতুন ডকুমেন্ট ইনসার্ট
mongo.db.users.insert_one({"name": name, "email": email})
return redirect(url_for("home"))
# READ (একটি নির্দিষ্ট ইউজার দেখানো)
@app.route("/user/<user_id>")
def user(user_id):
user = mongo.db.users.find_one_or_404({"_id": mongo.ObjectId(user_id)})
return render_template("user.html", user=user)
# UPDATE (ইউজারের তথ্য আপডেট)
@app.route("/update_user/<user_id>", methods=["GET", "POST"])
def update_user(user_id):
user = mongo.db.users.find_one_or_404({"_id": mongo.ObjectId(user_id)})
if request.method == "POST":
name = request.form["name"]
email = request.form["email"]
mongo.db.users.update_one({"_id": mongo.ObjectId(user_id)}, {"$set": {"name": name, "email": email}})
return redirect(url_for("home"))
return render_template("update_user.html", user=user)
# DELETE (ইউজার ডিলিট)
@app.route("/delete_user/<user_id>")
def delete_user(user_id):
mongo.db.users.delete_one({"_id": mongo.ObjectId(user_id)})
return redirect(url_for("home"))
if __name__ == "__main__":
app.run(debug=True)
এখানে:
- MongoDB URI:
"mongodb://localhost:27017/myDatabase"MongoDB সার্ভারের URI যেখানে ডাটাবেস সংরক্ষিত থাকবে। mongo.db.users.find(): MongoDB এরusersকলেকশন থেকে সমস্ত ডেটা পড়া হচ্ছে।insert_one(): MongoDB তে একটি নতুন ডকুমেন্ট ইনসার্ট করা হচ্ছে।find_one_or_404(): MongoDB থেকে একটি নির্দিষ্ট ইউজার অনুসন্ধান করা হচ্ছে এবং যদি না পাওয়া যায় তবে 404 এরর দিবে।update_one(): MongoDB-এ একটি নির্দিষ্ট ডকুমেন্ট আপডেট করা হচ্ছে।delete_one(): MongoDB থেকে একটি নির্দিষ্ট ডকুমেন্ট মুছে ফেলা হচ্ছে।
৩. HTML টেমপ্লেট
home.html (হোম পেজ)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask MongoDB CRUD</title>
</head>
<body>
<h1>All Users</h1>
<form method="POST" action="/add_user">
<label>Name:</label>
<input type="text" name="name" required>
<label>Email:</label>
<input type="email" name="email" required>
<button type="submit">Add User</button>
</form>
<ul>
{% for user in users %}
<li>
{{ user['name'] }} ({{ user['email'] }})
<a href="/user/{{ user['_id'] }}">View</a> |
<a href="/update_user/{{ user['_id'] }}">Edit</a> |
<a href="/delete_user/{{ user['_id'] }}">Delete</a>
</li>
{% endfor %}
</ul>
</body>
</html>
user.html (একটি ইউজারের ডিটেইলস পেজ)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ user['name'] }}</title>
</head>
<body>
<h1>{{ user['name'] }}</h1>
<p>Email: {{ user['email'] }}</p>
<a href="/">Back to Home</a>
</body>
</html>
update_user.html (ইউজার আপডেট পেজ)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Update User</title>
</head>
<body>
<h1>Update User</h1>
<form method="POST">
<label>Name:</label>
<input type="text" name="name" value="{{ user['name'] }}" required>
<label>Email:</label>
<input type="email" name="email" value="{{ user['email'] }}" required>
<button type="submit">Update</button>
</form>
<a href="/">Back to Home</a>
</body>
</html>
৪. MongoDB থেকে CRUD অপারেশন ব্যাখ্যা
- CREATE: নতুন ডকুমেন্ট (ইউজার) MongoDB তে ইনসার্ট করা হয়
insert_one()ফাংশনের মাধ্যমে। - READ: MongoDB থেকে ডাটা পড়তে
find()অথবাfind_one_or_404()ব্যবহার করা হয়। - UPDATE: একটি ডকুমেন্টের তথ্য আপডেট করতে
update_one()ব্যবহার করা হয়। - DELETE: একটি ডকুমেন্ট মুছতে
delete_one()ব্যবহার করা হয়।
Flask এবং MongoDB দিয়ে CRUD অপারেশন সম্পাদন করা খুবই সহজ এবং কার্যকরী। Flask-PyMongo এক্সটেনশন MongoDB-এর সাথে Flask অ্যাপ্লিকেশন ইন্টিগ্রেট করে এবং MongoDB থেকে ডেটা পড়া, আপডেট করা, ইনসার্ট করা এবং ডিলিট করা সহজ করে তোলে। এই উদাহরণের মাধ্যমে আপনি MongoDB এর সাথে Flask অ্যাপ্লিকেশনে ডেটা ম্যানেজমেন্ট (CRUD) সঠিকভাবে করতে পারবেন।
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 অ্যাপ্লিকেশনে ব্যবহারকারী ডেটা সংরক্ষণের জন্য উপযুক্ত একটি সমাধান প্রদান করে।
Read more