フレームワークを使用することで、データベースのセットアップ、モデルの定義、データの追加、クエリ、更新、削などの操作を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()
コメント