最初のモデルクラスを定義する
Pythonクラスをデータベーステーブルにマッピングします
「最初のモデルクラスを定義する」は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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 拡張機能をインストールして設定する
- 最初のモデルクラスを定義する
- カラム、型、制約
- create_allでスキーマを作成する