Flask Academy · レッスン

create_allでスキーマを作成する

モデル定義からテーブルを生成します

レッスン 4/413 ステップ

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

モデルからテーブルへ

モデルはテーブルを定義しますが、データベースファイルはまだ空です。定義を実際のtablesに変えるための手順が1つ必要です。🏗️

create_allの紹介

db.create_all()は認識しているすべてのモデルを調べ、CREATE TABLE文を自動的に発行します。1回の呼び出しでスキーマ全体を構築できます。

db.create_all()

アプリケーションコンテキストが必要です

create_allは、設定と正しいデータベース接続を見つけられるように、application context内で実行する必要があります。

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

先にモデルをインポートする

create_allがテーブルを作成するのは、importedされているモデルだけです。モデルファイルが一度も読み込まれないと、そのテーブルは何も通知されずに作成されません。

シェルから実行する

データベースを設定する簡単な方法はflask shellを使うことです。アプリケーションコンテキストがすでに有効になっています。

flask shell

何度実行しても安全です

create_allはすでに存在するテーブルをスキップするため、2回実行してもエラーになりません。不足しているものだけをmissingとして作成します。

テーブルは変更されません

注意点があります。create_allは既存のテーブルを決してchangesしません。新しいカラムを追加しても、以前のテーブルはそのままです。

drop_allですべてを削除する

開発中にやり直したい場合は、db.drop_all()で全テーブルとそのデータを削除できます。ただし、十分に注意して使ってください。

db.drop_all()

開発時のリセットパターン

開発時には、削除してから作り直す方法がよく使われます。きれいなテーブルを再構築できますが、すべてのdataも消えるため、本番環境では絶対に実行しないでください。

db.drop_all()
db.create_all()

ファイルが作成されたことを確認する

SQLiteでは、create_allの実行後にapp.dbのようなデータベースfileが現れます。これを確認すれば、テーブルが実際に作成されたことがわかります。

次のステップ:マイグレーション

create_allではスキーマを発展させられないため、実際のプロジェクトではモデルが時間とともに変わり始めたらすぐにmigrationsへ移行します。

クイックチェック

既存のモデルに新しいカラムを追加しました。create_allはどうしますか。

まとめ

アプリケーションコンテキスト内でdb.create_all()を使ってテーブルを作成し、既存のテーブルは変更されないことと、drop_allについて学びました。🎉

無料で開始

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

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

コース
30
レッスン
120

よくある質問

「create_allでスキーマを作成する」レッスンは無料ですか?

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

「create_allでスキーマを作成する」で何を学びますか?

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

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

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

「create_allでスキーマを作成する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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