SQLite و SQLAlchemy ابزارهای قدرتمندی برای مدیریت و تعامل با پایگاههای داده در برنامههای پایتونی هستند. پایگاه داده اس کیو لایت به عنوان یک پایگاه داده سبک و بدون نیاز به سرور، و اس کیو ال الکمی به عنوان یک ORM پیشرفته و منعطف، میتوانند به توسعهدهندگان کمک کنند تا برنامههای وب و نرمافزارهای پیچیدهای را به سادگی و با کارایی بالا ایجاد کنند.
SQLite چیست؟
SQLite یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) است که به دلیل سبک بودن و نداشتن نیاز به سرور، بسیار محبوب است.
پایگاه داده اس کیو لایت تمامی دادهها را در یک فایل واحد ذخیره میکند و برای برنامههای کوچک و متوسط، توسعه سریع و محیطهای تعبیهشده مانند اپلیکیشنهای موبایل و دستگاههای IoT بسیار مناسب است. این سیستم با زبان استاندارد SQL سازگار است و نیازی به تنظیمات پیچیده ندارد.
بیشتر بخوانید: استفاده از دستور Case در SQL Server
SQLAlchemy چیست؟
SQLAlchemy یک کتابخانهی ORM (Object-Relational Mapping) برای زبان پایتون است که ارتباط بین اشیاء پایتونی و جداول پایگاه داده را فراهم میکند. با استفاده از اس کیو ال الکمی، توسعهدهندگان میتوانند بدون نیاز به نوشتن مستقیم دستورات SQL، با دادههای پایگاه داده تعامل کنند.
این کتابخانه از چندین سیستم مدیریت پایگاه داده مختلف مانند SQLite، MySQL و PostgreSQL پشتیبانی میکند و امکاناتی برای مدیریت تراکنشها و انجام کوئریهای پیچیده ارائه میدهد.
نصب و راهاندازی SQLite و SQLAlchemy
در ادامه به بررسی نکات نصب و راهاندازی پایگاه داده اس کیو لایت و اس کیو ال الکمی میپردازیم:
نصب SQLite
SQLite به طور پیشفرض در بسیاری از سیستمهای عامل به همراه پایتون نصب شده است و نیازی به نصب جداگانه ندارد. برای بررسی وجود SQLite و نسخهی آن میتوانید از دستور زیر در ترمینال استفاده کنید:
sqlite3 --version
اگر SQLite به صورت پیشفرض نصب نشده باشد، میتوانید آن را به راحتی نصب کنید:
در سیستمهای Ubuntu/Debian
sudo apt-get update
sudo apt-get install sqlite3
در سیستمهای macOS (با Homebrew)
brew install sqlite
در سیستمهای Windows
میتوانید فایلهای باینری پایگاه داده اس کیو لایت را از وبسایت رسمی SQLite دانلود کرده و در مسیر مناسب استخراج کنید.
نصب SQLAlchemy و Flask-SQLAlchemy
برای استفاده از SQLAlchemy و Flask-SQLAlchemy در پروژههای پایتون، باید این کتابخانهها را با استفاده از pip نصب کنید. در اینجا نحوهی نصب آنها را مشاهده میکنید:
ایجاد محیط مجازی (اختیاری ولی توصیهشده)
برای جداسازی وابستگیهای پروژه و مدیریت بهتر کتابخانهها، توصیه میشود از محیط مجازی استفاده کنید. برای ایجاد و فعالسازی محیط مجازی، از دستورات زیر استفاده کنید:
# ایجاد محیط مجازی
python -m venv env
# فعالسازی محیط مجازی در سیستمهای Unix یا macOS
source env/bin/activate
# فعالسازی محیط مجازی در سیستمهای Windows
env\Scripts\activate
پس از فعالسازی محیط مجازی، میتوانید با استفاده از pip کتابخانههای مورد نیاز را نصب کنید:
pip install SQLAlchemy Flask-SQLAlchemy
این دستور اس کیو ال الکمی را به عنوان کتابخانه ORM و Flask-SQLAlchemy را برای ادغام آسانتر SQLAlchemy با فریم ورک Flask نصب میکند.
بیشتر بخوانید: آموزش جامع ساخت کتابخانه در پایتون
پیکربندی SQLite و SQLAlchemy در Flask
در فایل اصلی برنامهی Flask خود (مثلاً app.py)، باید پیکربندیهای مربوط به پایگاه داده SQLite و SQLAlchemy را انجام دهید. به کد زیر توجه کنید:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# پیکربندی URI پایگاه داده
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
در اینجا، SQLALCHEMY_DATABASE_URI مسیر فایل پایگاه داده SQLite را مشخص میکند و SQLALCHEMY_TRACK_MODIFICATIONS بهمنظور بهینهسازی عملکرد و جلوگیری از ایجاد هشدارهای غیرضروری، غیر فعال شده است.
ایجاد پایگاه داده اس کیو لایت
پس از پیکربندی، میتوانید جداول و مدلهای خود را ایجاد کنید. برای این منظور، ابتدا مدلهای پایتونی خود را تعریف کرده و سپس از دستور ()create_allبرای ایجاد جداول استفاده کنید:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.username}>'
with app.app_context():
db.create_all()
در اینجا، کلاس User به عنوان مدل تعریف شده است و با استفاده از ()db.create_all جداول مورد نیاز در پایگاه داده SQLite ایجاد میشود.
با دنبال کردن این مراحل، SQLite و SQLAlchemy به درستی نصب و پیکربندی شده و میتوانید از آنها برای مدیریت دادهها و تعامل با پایگاه داده در پروژههای Flask خود استفاده کنید.
شروع استفاده از SQLAlchemy و Flask-SQLAlchemy
پس از نصب، میتوانید اس کیو ال الکمی و Flask-SQLAlchemy را در پروژه Flask خود وارد کرده و از آنها برای مدیریت پایگاه داده استفاده کنید. برای مثال:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
در اینجا، SQLALCHEMY_DATABASE_URI مسیر فایل پایگاه داده SQLite را مشخص میکند و SQLALCHEMY_TRACK_MODIFICATIONS بهمنظور بهینهسازی عملکرد و جلوگیری از ایجاد هشدارهای غیرضروری، غیر فعال شده است.
با دنبال کردن این مراحل، SQLAlchemy و Flask-SQLAlchemy به درستی نصب و آماده استفاده در پروژههای پایتون و Flask شما خواهند بود.
پیکربندی SQLite در پروژه Flask
برای پیکربندی پایگاه داده اس کیو لایت در پروژه Flask، باید چند مرحله را دنبال کنید تا بتوانید پایگاه داده را با استفاده از اس کیو ال الکمی در برنامه Flask خود به کار ببرید. در اینجا مراحل اصلی پیکربندی را شرح میدهیم:
ایجاد یک پروژه جدید Flask
ابتدا باید یک پروژه Flask جدید ایجاد کنید یا به پروژه موجود خود بروید. در اینجا فرض میکنیم که شما یک پروژه جدید به نام myproject ایجاد کردهاید و به آن وارد شدهاید:
mkdir myproject
cd myproject
نصب Flask و Flask-SQLAlchemy
اگر هنوز Flask و Flask-SQLAlchemy را نصب نکردهاید، با استفاده از pip این کار را انجام دهید:
pip install Flask Flask-SQLAlchemy
تنظیم فایل اصلی برنامه
یک فایل جدید به نام app.py (یا نام دلخواه دیگر) در پوشه پروژه خود ایجاد کنید. سپس کد زیر را برای پیکربندی SQLite و اس کیو ال الکمی در فایل app.py وارد کنید:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# پیکربندی URI پایگاه داده SQLite
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.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(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.username}>'
# ایجاد جداول
with app.app_context():
db.create_all()
# راهاندازی برنامه
if __name__ == '__main__':
app.run(debug=True)
توضیحات کد
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite:///mydatabase.db’
در اینجا، ‘sqlite:///mydatabase.db’ مسیر فایل پایگاه داده اس کیو لایت را مشخص میکند. اگر فایل mydatabase.db در پوشه پروژه وجود نداشته باشد، اس کیو ال الکمی به صورت خودکار آن را ایجاد میکند.
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
- این گزینه به منظور بهینهسازی عملکرد و جلوگیری از ایجاد هشدارهای غیرضروری غیرفعال شده است.
- تعریف مدلها:
در اینجا مدل User تعریف شده است که نشاندهنده یک جدول در پایگاه داده است. ویژگیهای مدل شامل id، username و email است. - ایجاد جداول:
با استفاده از db.create_all()، جداول مربوط به مدلهای تعریفشده در پایگاه داده SQLite ایجاد میشود. این دستور را باید در زمینه (context) برنامه Flask اجرا کنید، به همین دلیل از app.app_context() استفاده شده است.
اجرای برنامه
برای اجرای برنامه، دستور زیر را در ترمینال وارد کنید:
python app.py
با اجرای این دستور، سرور Flask شروع به کار میکند و پایگاه داده SQLite نیز با جداول مربوطه ساخته میشود. میتوانید برنامه را در مرورگر خود با رفتن به آدرس http://127.0.0.1:5000/ مشاهده کنید.
تعامل با پایگاه داده
حال که پایگاه داده SQLite پیکربندی شده است، میتوانید عملیات CRUD (ایجاد، خواندن، بهروزرسانی و حذف) را با استفاده از SQLAlchemy انجام دهید. برای مثال، میتوانید دادهها را به پایگاه داده اضافه کنید، آنها را بازیابی کنید و تغییرات را ذخیره کنید.
این مراحل به شما کمک میکند تا پایگاه داده اس کیو لایت را در پروژه Flask خود پیکربندی کرده و بتوانید از امکانات اس کیو ال الکمی برای مدیریت پایگاه داده بهرهبرداری کنید.
پیکربندی Flask برای استفاده از SQLite
برای استفاده از SQLite در پروژه Flask، باید چند مرحله ساده را دنبال کنید تا اتصال بین Flask و پایگاه داده SQLite را به درستی پیکربندی کنید. در ادامه به توضیح مراحل مورد نیاز میپردازیم:
نصب Flask و Flask-SQLAlchemy
اگر هنوز Flask و Flask-SQLAlchemy را نصب نکردهاید، ابتدا باید این کتابخانهها را نصب کنید. از دستور زیر در ترمینال استفاده کنید:
pip install Flask Flask-SQLAlchemy
ایجاد فایل اصلی برنامه
یک فایل جدید به نام app.py (یا نام دلخواه دیگر) در پوشه پروژه خود ایجاد کنید. سپس کد زیر را برای پیکربندی پایگاه داده اس کیو لایت و SQLAlchemy در فایل app.py وارد کنید:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# ایجاد شیء Flask
app = Flask(__name__)
# پیکربندی URI پایگاه داده SQLite
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.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(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.username}>'
# ایجاد جداول
with app.app_context():
db.create_all()
# راهاندازی برنامه
if __name__ == '__main__':
app.run(debug=True)
توضیحات کد
ایجاد شیء Flask:app = Flask(__name__)
- با این خط کد، یک شیء Flask جدید ایجاد میشود که برای پیکربندی و راهاندازی برنامه استفاده خواهد شد.
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite:///mydatabase.db’
این خط کد مسیر فایل پایگاه داده SQLite را مشخص میکند. sqlite:///mydatabase.db به معنای این است که فایل پایگاه داده به نام mydatabase.db در پوشه پروژه ایجاد یا استفاده میشود.
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
- این گزینه به منظور بهینهسازی عملکرد و جلوگیری از ایجاد هشدارهای غیرضروری در Flask-SQLAlchemy غیر فعال شده است.
db = SQLAlchemy(app)
- این خط کد شی اس کیو ال الکمی را ایجاد میکند که برای مدیریت پایگاه داده و تعامل با آن استفاده میشود.
- تعریف مدلها:
در اینجا مدل User به عنوان یک جدول در پایگاه داده تعریف شده است. این مدل شامل فیلدهای id، username و email است که مشخصات کاربران را ذخیره میکند.
with app.app_context():
db.create_all()
- این خط کد باعث میشود که جداول مربوط به مدلهای تعریفشده در پایگاه داده اس کیو لایت ایجاد شوند. ()app.app_context به این معناست که عملیات ایجاد جداول در زمینه (context) برنامه Flask انجام میشود.
if __name__ == '__main__':
app.run(debug=True)
- با این خط کد، برنامه Flask راهاندازی میشود و در حالت اشکالزدایی (debug mode) اجرا میگردد.
اجرای برنامه
برای اجرای برنامه، دستور زیر را در ترمینال وارد کنید:
python app.py
با اجرای این دستور، سرور Flask شروع به کار میکند و پایگاه داده SQLite نیز با جداول مربوطه ساخته میشود. میتوانید برنامه را در مرورگر خود با رفتن به آدرس http://127.0.0.1:5000/ مشاهده کنید.
تعامل با پایگاه داده
پس از پیکربندی و راهاندازی، میتوانید با استفاده از SQLAlchemy به پایگاه داده SQLite متصل شوید و عملیات CRUD (ایجاد، خواندن، بهروزرسانی و حذف) را انجام دهید.
این مراحل به شما کمک میکنند تا پایگاه داده اس کیو لایت را در پروژه Flask خود پیکربندی کرده و بتوانید از امکانات SQLAlchemy برای مدیریت پایگاه داده استفاده کنید.
سخن پایانی
SQLite یک پایگاه دادهی رابطهای سبک و بدون نیاز به سرور است که به طور گسترده در برنامههای کاربردی مختلف، به خصوص برای ذخیرهسازی دادههای محلی، استفاده میشود. اس کیو ال الکمی یک کتابخانهی قدرتمند Object-Relational Mapper (ORM) برای زبان برنامهنویسی Python است. ORM به شما این امکان را میدهد که با اشیاء پایتون به جای دستورات SQL با پایگاه داده تعامل داشته باشید.
سوالات متداول درباره SQLAlchemy و SQLite
در ادامه 3 سوال متداول شما را درباره اس کیو ال الکمی و پایگاه داده اس کیو لایت میخوانیم.
SQLite چیست و چه مزایایی دارد؟
SQLite یک پایگاه دادهی رابطهای سبک و بدون نیاز به سرور است که به طور گسترده در برنامههای کاربردی مختلف، به خصوص برای ذخیرهسازی دادههای محلی، استفاده میشود.
SQLAlchemy چیست و چه مزایایی دارد؟
SQLAlchemy یک کتابخانهی قدرتمند Object-Relational Mapper (ORM) برای زبان برنامهنویسی Python است. ORM به شما این امکان را میدهد که با اشیاء پایتون به جای دستورات SQL با پایگاه داده تعامل داشته باشید.
چه زمانی باید از SQLite و چه زمانی از SQLAlchemy استفاده کنم؟
از پایگاه داده اس کیو لایت برای برنامههای کوچک یا ساده با حجم داده کم و نیاز به قابلیتهای پایگاه دادهی محدود استفاده کنید. از اس کیو ال الکمی برای برنامههای بزرگ یا پیچیده با حجم داده بالا و نیاز به قابلیتهای پایگاه دادهی پیشرفته استفاده کنید.