Flask একটি মাইক্রোফ্রেমওয়ার্ক হলেও এটি অত্যন্ত নমনীয় এবং বিভিন্ন ডাটাবেস সিস্টেমের সাথে সহজেই ইন্টিগ্রেট করা যায়। Flask ডাটাবেস পরিচালনার জন্য SQLAlchemy নামক একটি শক্তিশালী ORM (Object-Relational Mapping) লাইব্রেরি ব্যবহার করে। এই লাইব্রেরি আপনাকে SQL ডাটাবেসের সাথে কাজ করতে সাহায্য করে, যেমন SQLite, MySQL, এবং PostgreSQL।
এই টিউটোরিয়ালে আমরা দেখব কীভাবে Flask-এ SQLite, MySQL এবং PostgreSQL ডাটাবেস ইন্টিগ্রেট করা যায়।
১. Flask এর সাথে SQLite ইন্টিগ্রেশন
SQLite হলো একটি হালকা, সার্ভারবিহীন ডাটাবেস, যা সাধারণত ছোট প্রজেক্টের জন্য ব্যবহৃত হয়। Flask-এ SQLite ব্যবহার করা খুবই সহজ।
ধাপ ১: Flask অ্যাপ তৈরি এবং SQLAlchemy ইনস্টল করা
প্রথমে Flask এবং SQLAlchemy ইনস্টল করুন:
pip install flask flask-sqlalchemy
ধাপ ২: Flask অ্যাপে SQLite ডাটাবেস ইন্টিগ্রেট করা
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# SQLite ডাটাবেস URI
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# SQLAlchemy ইনিশিয়ালাইজ করা
db = SQLAlchemy(app)
# মডেল তৈরি করা
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(120), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f"User('{self.username}', '{self.email}')"
# ডাটাবেস তৈরি করা
with app.app_context():
db.create_all()
if __name__ == "__main__":
app.run(debug=True)
এখানে:
- SQLALCHEMY_DATABASE_URI: এটি SQLite ডাটাবেসের URI, যেখানে
sqlite:///site.dbব্যবহৃত হয়েছে। - db.create_all(): এটি ডাটাবেস তৈরি করার জন্য ব্যবহৃত হয়।
এই অ্যাপটি চালানোর পর SQLite ডাটাবেসে একটি site.db ফাইল তৈরি হবে, যা User মডেলটির ডাটা ধারণ করবে।
২. Flask এর সাথে MySQL ইন্টিগ্রেশন
MySQL একটি শক্তিশালী রিলেশনাল ডাটাবেস, যা বড় এবং স্কেলযোগ্য অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়। Flask-এ MySQL ব্যবহার করতে MySQLdb বা Flask-MySQLdb এক্সটেনশন ব্যবহার করা হয়।
ধাপ ১: MySQL ইনস্টলেশন
প্রথমে, Flask এর সাথে MySQL ব্যবহারের জন্য Flask-MySQLdb ইনস্টল করুন:
pip install flask-mysqldb
ধাপ ২: Flask অ্যাপে MySQL ডাটাবেস ইন্টিগ্রেট করা
from flask import Flask, render_template
from flask_mysqldb import MySQL
app = Flask(__name__)
# MySQL কনফিগারেশন সেট করা
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'yourpassword'
app.config['MYSQL_DB'] = 'flask_db'
# MySQL ইনিশিয়ালাইজ করা
mysql = MySQL(app)
@app.route("/")
def index():
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM users")
users = cur.fetchall()
return str(users)
if __name__ == "__main__":
app.run(debug=True)
এখানে:
MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD, এবংMYSQL_DB: MySQL ডাটাবেসের সংযোগ তথ্য।
এই কোডে MySQL ডাটাবেসে users টেবিল থেকে ডাটা নেয়া হচ্ছে। আপনার ডাটাবেসে users টেবিল তৈরি করতে হবে।
MySQL ডাটাবেস টেবিল তৈরি করা:
MySQL তে টেবিল তৈরি করার জন্য নিচের SQL কোড ব্যবহার করতে পারেন:
CREATE DATABASE flask_db;
USE flask_db;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100),
email VARCHAR(100)
);
৩. Flask এর সাথে PostgreSQL ইন্টিগ্রেশন
PostgreSQL একটি শক্তিশালী ওপেন-সোর্স ডাটাবেস সিস্টেম। Flask-এ PostgreSQL ইন্টিগ্রেট করতে psycopg2 এবং Flask-SQLAlchemy ব্যবহার করা হয়।
ধাপ ১: PostgreSQL ইনস্টলেশন
প্রথমে, Flask অ্যাপ্লিকেশনে PostgreSQL ব্যবহারের জন্য psycopg2 ইনস্টল করতে হবে:
pip install psycopg2 flask-sqlalchemy
ধাপ ২: Flask অ্যাপে PostgreSQL ডাটাবেস ইন্টিগ্রেট করা
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# PostgreSQL ডাটাবেস URI
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://username:password@localhost/dbname'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# SQLAlchemy ইনিশিয়ালাইজ করা
db = SQLAlchemy(app)
# মডেল তৈরি করা
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(120), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f"User('{self.username}', '{self.email}')"
# ডাটাবেস তৈরি করা
with app.app_context():
db.create_all()
if __name__ == "__main__":
app.run(debug=True)
এখানে:
- SQLALCHEMY_DATABASE_URI: PostgreSQL ডাটাবেসের URI, যেখানে
postgresql://username:password@localhost/dbnameব্যবহার করা হয়েছে। - db.create_all(): এটি PostgreSQL ডাটাবেসে টেবিল তৈরি করার জন্য ব্যবহৃত হয়।
এই কোডটি চালানোর পর PostgreSQL ডাটাবেসে একটি User মডেল তৈরি হবে।
PostgreSQL ডাটাবেস টেবিল তৈরি করা:
PostgreSQL তে টেবিল তৈরি করার জন্য নিচের SQL কোড ব্যবহার করতে পারেন:
CREATE DATABASE flask_db;
\c flask_db;
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(100),
email VARCHAR(100)
);
Flask-এর সাথে SQLite, MySQL, এবং PostgreSQL ইন্টিগ্রেশন খুবই সহজ এবং ফ্লেক্সিবল। Flask-এ SQLAlchemy ব্যবহার করে আপনি যেকোনো রিলেশনাল ডাটাবেসের সাথে কাজ করতে পারেন।
- SQLite সাধারণত ছোট এবং মাঝারি আকারের প্রজেক্টের জন্য ব্যবহার হয়।
- MySQL এবং PostgreSQL বৃহৎ এবং স্কেলযোগ্য অ্যাপ্লিকেশনের জন্য উপযুক্ত।
Read more