single
最初のモデルの作成
メニューを表示するにはスワイプしてください
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モデルを定義するための出発点が提供されています。あなたの役割は、不足している部分を補完してモデルを完成させることです。
__tablename__属性は、データベース内のテーブル名を指定します。Userモデルに適切なテーブル名でプレースホルダーを置き換えてください。idカラムは主キーとして指定する必要があります。これを示す正しいキーワード引数を追加してください。usernameカラムは__一意である必要__があり、同じユーザー名を持つユーザーが複数存在しないようにします。不足しているキーワード引数を入力してください。is_activeカラムには、__デフォルト値__としてTrueを設定します。このデフォルト値を設定するための適切な引数を追加してください。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください