MongoDB এর মাধ্যমে ডেটা ম্যানেজমেন্ট (CRUD)

Flask এবং MongoDB Integration - ফ্লাস্ক (Flask) - Web Development

275

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)

এখানে:

  1. MongoDB URI: "mongodb://localhost:27017/myDatabase" MongoDB সার্ভারের URI যেখানে ডাটাবেস সংরক্ষিত থাকবে।
  2. mongo.db.users.find(): MongoDB এর users কলেকশন থেকে সমস্ত ডেটা পড়া হচ্ছে।
  3. insert_one(): MongoDB তে একটি নতুন ডকুমেন্ট ইনসার্ট করা হচ্ছে।
  4. find_one_or_404(): MongoDB থেকে একটি নির্দিষ্ট ইউজার অনুসন্ধান করা হচ্ছে এবং যদি না পাওয়া যায় তবে 404 এরর দিবে।
  5. update_one(): MongoDB-এ একটি নির্দিষ্ট ডকুমেন্ট আপডেট করা হচ্ছে।
  6. 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 অপারেশন ব্যাখ্যা

  1. CREATE: নতুন ডকুমেন্ট (ইউজার) MongoDB তে ইনসার্ট করা হয় insert_one() ফাংশনের মাধ্যমে।
  2. READ: MongoDB থেকে ডাটা পড়তে find() অথবা find_one_or_404() ব্যবহার করা হয়।
  3. UPDATE: একটি ডকুমেন্টের তথ্য আপডেট করতে update_one() ব্যবহার করা হয়।
  4. DELETE: একটি ডকুমেন্ট মুছতে delete_one() ব্যবহার করা হয়।

Flask এবং MongoDB দিয়ে CRUD অপারেশন সম্পাদন করা খুবই সহজ এবং কার্যকরী। Flask-PyMongo এক্সটেনশন MongoDB-এর সাথে Flask অ্যাপ্লিকেশন ইন্টিগ্রেট করে এবং MongoDB থেকে ডেটা পড়া, আপডেট করা, ইনসার্ট করা এবং ডিলিট করা সহজ করে তোলে। এই উদাহরণের মাধ্যমে আপনি MongoDB এর সাথে Flask অ্যাপ্লিকেশনে ডেটা ম্যানেজমেন্ট (CRUD) সঠিকভাবে করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...