本文へスキップ
totonoe.tech

フレームワークを整える

中級

SQLAlchemy を整える

= SQL を書かずに Python のクラスでデータベースを操作する ORM を、裏側の SQL ごと確かめる

サンプルコード(クリックでエディタに挿入)

PYTHON EDITOR sqlite:///:memory: + SQLAlchemy ORM

OUTPUT

Python コードを書いて「実行」を押すと、print と SQL ログがここに出ます。

使い方

4 ステップで ORM の骨格をつかむ。

  1. 1

    モデル定義と作成 — クラスがそのままテーブルになる

    class User(Base): と書くと、Base.metadata.create_all(engine) で実際に CREATE TABLE が実行される。

  2. 2

    追加と問い合わせ — Session がやり取りの窓口

    session.add()session.commit() で確定。session.query(User).all() で取り出す。

  3. 3

    リレーション(1対多) — 「持つ」関係をコードで表す

    relationship()ForeignKey で、1人のユーザーが複数の投稿を持つ関係を表現できる。

  4. 4

    echo — 裏側の SQL を覗く

    create_engine(..., echo=True) にすると、ORM が実際に発行している CREATE TABLE / INSERT / SELECT がそのまま出力される。

💡 初回は Pyodide(Python WASM)に加えて SQLAlchemy パッケージの読み込みで数秒〜十数秒かかります。2 回目以降はキャッシュから瞬時にロード。 書いたコードと実行結果は、どこにも送信されません(すべてブラウザ内で実行、DB もブラウザのメモリ上だけ)。

🌐 「実行」を押した最初の1回だけ、Python の実行環境(Pyodide 0.28.0)と SQLAlchemy パッケージを配信元の cdn.jsdelivr.net から取得します。 これはプログラムを受け取るだけの通信で、あなたが書いたコードや実行結果が送られることはありません。

このツールについて

SQL を直接書かず、Python のクラスとメソッドでデータベースを操作する——それが ORM(object-relational mapping)。裏側でどんな SQL が実行されているかも、echo で覗けます。

SQL を直接書かず Python のクラスでデータベースを操作する ORM の練習場。echo で裏側の生成 SQL も覗ける。DB はブラウザのメモリ上だけ。

主な機能

  • 4サンプル(モデル定義/追加と問い合わせ/1対多リレーション/echo)
  • echo=True で実際に発行される SQL を表示
  • 単一エディタ+出力パネル
  • sqlite in-memory・Pyodide 上で実行・送信ゼロ

よくある質問

Q. SQLAlchemy とは何ですか?

A. Python のクラスとメソッドで SQL データベースを操作するための ORM ライブラリです。SQL を直接書かなくてもデータの作成・追加・検索ができます。

Q. echo=True にすると何が起きますか?

A. ORM が裏側で発行している SQL 文(CREATE TABLE・INSERT・SELECT など)がそのままログとして出力されます。

Q. ここで作ったデータベースはどこかに保存されますか?

A. 保存されません。sqlite:///:memory: はブラウザのメモリ上だけの一時的なデータベースで、ページを閉じると消えます。

入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。

続けて整える

KOINOBORI ECOSYSTEM

私たちが運営するサイト