آموزش فریمورک فلسک | پایگاه داده
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
اتصال به پایگاه داده
برای اتصال به پایگاه داده در فلسک، ابتدا باید یک کتابخانه مناسب را نصب کنید. رایجترین گزینه Flask-SQLAlchemy است که رابطی ساده برای کار با پایگاههای داده مختلف (مانند SQLite، MySQL یا PostgreSQL) فراهم میکند.
فرض کنید میخواهید از SQLite استفاده کنید (که برای یادگیری بسیار مناسب است). مراحل کار به این صورت است:
-
ایجاد شیء پایگاه داده: در فایل اصلی برنامه خود (مثلاً
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قرار دهید.
-
تعریف مدلها (جدولها): مدلها کلاسهایی هستند که ساختار جدولهای پایگاه داده را مشخص میکنند. هر کلاس باید از
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: مشابه بالایی.
-
ایجاد پایگاه داده: پس از تعریف مدلها، باید پایگاه داده و جداول را ایجاد کنید. این کار معمولاً با اجرای دستور
db.create_all()در شل فلسک انجام میشود. اما میتوانید این کار را در یک تابع جداگانه و پس از راهاندازی برنامه انجام دهید:with app.app_context(): db.create_all()این دستور تمام جداول تعریف شده را در فایل
my_database.dbایجاد میکند. -
تست اتصال: برای اطمینان از کارکرد صحیح، میتوانید یک رکورد به جدول اضافه کنید و آن را چاپ کنید. مثلاً:
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).
برای ثبت پرسش ابتدا در سایت وارد شوید.