آموزش فریمورک فلسک | پایگاه داده

اتصال به پایگاه داده

برای اتصال به پایگاه داده در فلسک، ابتدا باید یک کتابخانه مناسب را نصب کنید. رایج‌ترین گزینه Flask-SQLAlchemy است که رابطی ساده برای کار با پایگاه‌های داده مختلف (مانند SQLite، MySQL یا PostgreSQL) فراهم می‌کند.

فرض کنید می‌خواهید از SQLite استفاده کنید (که برای یادگیری بسیار مناسب است). مراحل کار به این صورت است:

  1. ایجاد شیء پایگاه داده: در فایل اصلی برنامه خود (مثلاً app.py)، ابتدا ماژول Flask و SQLAlchemy را وارد کنید. سپس یک شیء از کلاس SQLAlchemy ایجاد کنید و آن را به برنامه خود متصل کنید.

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_database.db'
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    
    db = SQLAlchemy(app)
    • SQLALCHEMY_DATABASE_URI: آدرس پایگاه داده را مشخص می‌کند. در اینجا یک فایل SQLite با نام my_database.db ایجاد می‌شود.
    • SQLALCHEMY_TRACK_MODIFICATIONS: برای جلوگیری از هشدارها، این گزینه را روی False قرار دهید.
  2. تعریف مدل‌ها (جدول‌ها): مدل‌ها کلاس‌هایی هستند که ساختار جدول‌های پایگاه داده را مشخص می‌کنند. هر کلاس باید از db.Model ارث‌بری کند و فیلدهای خود را با استفاده از انواع داده‌ای مانند db.String، db.Integer و … تعریف کنید.

    مثال: یک جدول ساده برای ذخیره کاربران:

    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}>'
    • id: یک کلید اصلی که به صورت خودکار افزایش می‌یابد.
    • username: یک رشته با حداکثر ۸۰ کاراکتر، یکتا و غیرخالی.
    • email: مشابه بالایی.
  3. ایجاد پایگاه داده: پس از تعریف مدل‌ها، باید پایگاه داده و جداول را ایجاد کنید. این کار معمولاً با اجرای دستور db.create_all() در شل فلسک انجام می‌شود. اما می‌توانید این کار را در یک تابع جداگانه و پس از راه‌اندازی برنامه انجام دهید:

    with app.app_context():
       db.create_all()

    این دستور تمام جداول تعریف شده را در فایل my_database.db ایجاد می‌کند.

  4. تست اتصال: برای اطمینان از کارکرد صحیح، می‌توانید یک رکورد به جدول اضافه کنید و آن را چاپ کنید. مثلاً:

    with app.app_context():
       new_user = User(username='alireza', email='alireza@example.com')
       db.session.add(new_user)
       db.session.commit()
       print(User.query.all())

    این کار یک کاربر جدید اضافه می‌کند و سپس تمام کاربران را نمایش می‌دهد.

با این روش، شما یک اتصال پایه‌ای به پایگاه داده SQLite برقرار کرده‌اید. توجه داشته باشید که اگر از پایگاه داده‌های دیگر (مثل MySQL) استفاده می‌کنید، فقط آدرس SQLALCHEMY_DATABASE_URI را تغییر دهید (مثلاً به mysql://username:password@localhost/db_name).

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3