Flask অ্যাপ্লিকেশনে SQLAlchemy ব্যবহারের জন্য আমরা কিছু ধাপ অনুসরণ করবো। SQLAlchemy হলো একটি জনপ্রিয় Python ORM (Object Relational Mapper) যা ডাটাবেসের সঙ্গে ইন্টারঅ্যাকশন সহজ করে তোলে। এটি Flask অ্যাপ্লিকেশনে ব্যবহারের জন্য বেশ কার্যকর।
প্রথমে, প্রয়োজনীয় প্যাকেজ ইনস্টল করা
SQLAlchemy এবং Flask-SQLAlchemy ইন্সটল করতে প্রথমে আপনার প্রকল্পের ভার্চুয়াল এনভায়রনমেন্ট চালু করে নিচের কমান্ডটি রান করুন:
pip install Flask SQLAlchemy
Flask অ্যাপ্লিকেশন তৈরি
এখন একটি সাধারণ Flask অ্যাপ্লিকেশন তৈরি করে SQLAlchemy কনফিগার করি। উদাহরণস্বরূপ, আমরা একটি User মডেল তৈরি করবো, যাতে ব্যবহারকারীর নাম এবং ইমেইল থাকবে।
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# Flask অ্যাপ্লিকেশন তৈরি
app = Flask(__name__)
# ডাটাবেস কনফিগারেশন
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' # SQLite ডাটাবেস ব্যবহার করছি
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # পারফরমেন্স অপটিমাইজেশন
# SQLAlchemy ইনিশিয়ালাইজ করা
db = SQLAlchemy(app)
# ডাটাবেস মডেল তৈরি
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.name}>'
# হোম রাউট
@app.route('/')
def index():
return "Welcome to the Flask Application with SQLAlchemy!"
# ডাটাবেস তৈরি
@app.before_first_request
def create_tables():
db.create_all()
if __name__ == "__main__":
app.run(debug=True)
কোড ব্যাখ্যা:
- Flask এবং SQLAlchemy ইনিশিয়ালাইজ করা:
- প্রথমে
FlaskএবংSQLAlchemyইমপোর্ট করা হয়। SQLALCHEMY_DATABASE_URIএর মাধ্যমে SQLite ডাটাবেসের URI সেট করা হয়। এখানে আমরাsqlite:///users.dbব্যবহার করেছি, মানে আমাদেরusers.dbনামের একটি ডাটাবেস তৈরি হবে একই ফোল্ডারে।SQLALCHEMY_TRACK_MODIFICATIONSFalse করে দেওয়া হয়, যা Flask এর কিছু অতিরিক্ত ট্র্যাকিং নিষ্ক্রিয় করে দেয় এবং পারফরমেন্স উন্নত করে।
- প্রথমে
- User মডেল:
Userক্লাসে আমাদের ডাটাবেস টেবিল তৈরি হয়।id,nameএবংemailকলামগুলোকে মডেল হিসেবে ডিফাইন করা হয়েছে।__repr__ফাংশনটি একটি সহজভাবে ইউজার অবজেক্টের প্রতিনিধিত্ব প্রদান করে।
- ডাটাবেস টেবিল তৈরি:
create_tablesফাংশনটি@app.before_first_requestডেকোরেটরের মাধ্যমে রান করা হয়, যাতে প্রথম রিকোয়েস্টের আগেই টেবিল তৈরি হয়ে যায়।
ডাটাবেসে ডাটা ইনসার্ট করা
এখন আমরা Flask অ্যাপ্লিকেশনে ডাটাবেসে কিছু ইউজার ইনসার্ট করবো। উদাহরণস্বরূপ, নিচের কোডটি ব্যবহার করতে পারেন:
@app.route('/add_user')
def add_user():
new_user = User(name='John Doe', email='john@example.com')
db.session.add(new_user)
db.session.commit()
return f'User {new_user.name} added to the database!'
এখানে /add_user রাউটে একটি নতুন ইউজার John Doe নামের এবং john@example.com ইমেইল সহ ইনসার্ট করা হচ্ছে।
ডাটাবেস থেকে ডাটা পড়া
ডাটাবেস থেকে ইউজার ডাটা পড়তে আমরা একটি রাউট তৈরি করবো:
@app.route('/users')
def users():
all_users = User.query.all() # সব ইউজার পড়া
return '<br>'.join([f'{user.name} - {user.email}' for user in all_users])
এখানে User.query.all() ব্যবহার করে সব ইউজারের ডাটা পাওয়া যাবে।
Flask অ্যাপ্লিকেশন রান করা
অ্যাপ্লিকেশন চালানোর জন্য:
python app.py
এখন আপনি http://127.0.0.1:5000/ এ ব্রাউজারে গিয়ে অ্যাপ্লিকেশনটি দেখতে পারবেন। এবং http://127.0.0.1:5000/add_user এ গিয়ে নতুন ইউজার অ্যাড করতে পারবেন।
সারাংশ
Flask এবং SQLAlchemy ব্যবহার করে ডাটাবেস অ্যাপ্লিকেশন তৈরি করা খুবই সহজ। এর মাধ্যমে আপনি ডাটাবেস মডেল তৈরি করতে পারেন, ডাটা ইনসার্ট করতে পারেন, এবং ডাটাবেস থেকে ডাটা রিট্রিভ করতে পারেন। Flask-SQLAlchemy হল একটি শক্তিশালী টুল যা ORM এর মাধ্যমে ডাটাবেস ম্যানেজমেন্ট আরও সহজ করে তোলে।
Read more