Flask-SQLAlchemy拡張(データベース)の基本的な使い方

flask

フレームワークを使用することで、データベースのセットアップ、モデルの定義、データの追加、クエリ、更新、削などの操作をPython コードで直感的に行えます。

設定と初期化

Windowsの場合はURIの区切り\を/に変換する必要があります。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
db_path="C:\folder\mydb.db"
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'+ db_path.replace("\\","/")  # 使用するデータベースのURIを指定

db = SQLAlchemy(app) #DBの初期化

モデルの定義

データベーステーブルに対応するモデルクラスを定義します。これらのクラスは db.Model を継承し、テーブルのカラムとリレーションシップを定義します。

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 '<User %r>' % self.username

データベースの作成

モデルを定義した後、データベースにテーブルを作成します。

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

レコードの追加

データベースに新しいレコード(行)を追加するには、モデルのインスタンスを作成し、データベースセッションに追加してコミットします。

new_user = User(username='john_doe', email='john@example.com')
db.session.add(new_user)
db.session.commit()

レコードのクエリ

データを取得するには、モデルクラスに対して query 属性を使用します。

# すべてのユーザーを取得する
users = User.query.all()

# 特定の条件に基づいてデータをフィルタリングする
user = User.query.filter(username='john_doe').first()

レコードの更新

取得したレコードを更新するには、属性を変更してデータベースセッションをコミットします。

user.email = '_email@example.com'
db.session.commit()

レコードの削除

レコードを削除するには、データースセッションから削除してコミットします。

db.session.delete(user)
db.session.commit()

コメント

タイトルとURLをコピーしました