Flask Academy · レッスン

最初のモデルクラスを定義する

Pythonクラスをデータベーステーブルにマッピングします

レッスン 2/413 ステップ

「最初のモデルクラスを定義する」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。

モデルはテーブルです

ORMの世界では、1つのPythonクラスが1つのデータベーステーブルに対応します。各modelは、保存する行の構造を定義します。🧱

db.Modelを継承する

クラスをdb.Modelのサブクラスにします。この基底クラスを継承するだけで、クエリや保存など、テーブルに必要な機能を利用できます。

class User(db.Model):
    pass

クラス名からテーブル名へ

デフォルトでは、テーブル名はクラス名を小文字にしたものです。そのため、Userという名前のクラスは自動的にuserというテーブルに対応します。

カラムはクラス属性です

各フィールドはdb.Columnに設定したクラス属性です。IntegerやStringなどのカラム型が、データベースに保存するデータの種類を指定します。

name = db.Column(db.String(80))

すべてのテーブルにキーが必要です

1つのカラムをprimary keyにします。これは各行を一意に識別するIDです。データベースはこれによって各レコードを区別します。

id = db.Column(db.Integer, primary_key=True)

最初の完全なモデル

キーといくつかのフィールドを組み合わせます。この小さなクラスだけで、Userテーブルとそのカラムを完全に定義できます。

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))

テーブル名を上書きする

独自のテーブル名を使いたい場合は、クラスに__tablename__を設定します。ORMはデフォルト名の代わりにその名前を使います。

__tablename__ = "users"

オブジェクトのようにインスタンスを作成する

モデルのインスタンスは通常のPythonオブジェクトです。カラムの値をキーワード引数で渡すと、それぞれが保存対象のrowになります。

u = User(name="Ada")

役立つreprを追加する

__repr__を定義すると、シェルやログでオブジェクトがわかりやすく表示されるため、デバッグ時に内容を推測する手間を省けます。

def __repr__(self):
    return f"<User {self.name}>"

モデルを1か所にまとめる

モデルはmodels.pyファイルにまとめます。そうすれば、循環インポートを避けながらビュー、スクリプト、テストからきれいにインポートできます。

SQLは必要ありません

CREATE TABLEを一度も書いていないことに注目してください。modelの定義がスキーマとなり、ORMがSQLに変換してくれます。

クイックチェック

Flask-SQLAlchemyのモデルクラスは何を表しますか。

まとめ

db.Modelを継承してモデルを作成し、カラムとprimary keyを定義しました。また、クラス自体がスキーマになることも学びました。✅

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「最初のモデルクラスを定義する」レッスンは無料ですか?

はい。「最初のモデルクラスを定義する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。

「最初のモデルクラスを定義する」で何を学びますか?

Pythonクラスをデータベーステーブルにマッピングします ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Flask Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「最初のモデルクラスを定義する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このFlask Academyレッスンでコードを書いて実行できますか?

はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 拡張機能をインストールして設定する
  2. 最初のモデルクラスを定義する
  3. カラム、型、制約
  4. create_allでスキーマを作成する
← Flask Academyに戻る