Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 最初のモデルの作成 | SQLAlchemy
Pythonでのデータベース操作
セクション 4.  4
single

single

book最初のモデルの作成

メニューを表示するにはスワイプしてください

SQLAlchemy では、モデルの作成はデータベース内のテーブルに対応する__Python クラス__を定義することによって行われます。このクラスの各インスタンスはテーブル内の1行を表します。ここでは、ユーザーコメントを保存するための Comment モデルを作成する簡単な例を紹介します。

from sqlalchemy import Column, Integer, String, Text, DateTime
from sqlalchemy.ext.declarative import declarative_base
from datetime import datetime

Base = declarative_base()

class Comment(Base):
    __tablename__ = "comments"  # the name of the table in the database

    id = Column(Integer, primary_key=True)  # primary key column, uniquely identifies each comment
    content = Column(Text, nullable=False)  # content of the comment, cannot be null
    created_at = Column(DateTime, default=datetime.utcnow)  # timestamp when the comment is created, defaults to current time

# Create all tables defined by models
Base.metadata.create_all(engine)

このコードは、Comment という名前の Python クラスを定義しており、これはデータベース内のテーブルを表します。このクラスは Base を継承しており、データベースのテーブルにマッピングできるようになります。

__tablename__ = "comments"

Comment クラスは Base を継承し、database 内の table を定義します。これにより、Object-Relational Mapping (ORM) を使ってデータベースのテーブルにマッピングされます。

id = Column(Integer, primary_key=True)

id フィールドは primary key として機能し、各コメントに一意の識別子を割り当てます。SQLAlchemy は新しいレコードごとにこの値を自動的に増加させます。

content = Column(Text, nullable=False)

content フィールドはコメントのテキストを格納します。これは必須フィールドであり、このフィールドが null の場合はデータベースにコメントを追加できません。

created_at = Column(DateTime, default=datetime.utcnow)

created_at フィールドはコメントが作成されたタイムスタンプを自動的に保存します。値が指定されていない場合は datetime.utcnow を使って現在時刻(UTC)で記録されます。

Base.metadata.create_all(engine)

この行は、models で定義された database 内のすべての tables を作成します。metadata の情報を利用し、engine が提供する接続を通じて必要な tables を作成します。これにより、まだ存在しない tables を自動的に作成することができます。

タスク

スワイプしてコーディングを開始

このタスクでは、SQLAlchemyモデルを定義するための出発点が提供されています。あなたの役割は、不足している部分を補完してモデルを完成させることです。

  1. __tablename__属性は、データベース内のテーブル名を指定します。Userモデルに適切なテーブル名でプレースホルダーを置き換えてください。
  2. idカラムは主キーとして指定する必要があります。これを示す正しいキーワード引数を追加してください。
  3. usernameカラムは__一意である必要__があり、同じユーザー名を持つユーザーが複数存在しないようにします。不足しているキーワード引数を入力してください。
  4. is_activeカラムには、__デフォルト値__としてTrueを設定します。このデフォルト値を設定するための適切な引数を追加してください。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt