Primary Keys and Column Types
Primary keys
A primary key uniquely identifies a row.
Most tables use an auto-incrementing integer idid:
id = db.Column(db.Integer, primary_key=True)id = db.Column(db.Integer, primary_key=True)Common column types
db.Integerdb.Integerdb.String(length)db.String(length)db.Textdb.Textdb.Booleandb.Booleandb.DateTimedb.DateTimedb.Floatdb.Floatdb.Numericdb.Numeric
Example:
created_at = db.Column(db.DateTime, nullable=False)created_at = db.Column(db.DateTime, nullable=False)Constraints
nullable=Falsenullable=False(required)unique=Trueunique=True(unique constraint)index=Trueindex=True(create an index for faster lookups)
Example:
email = db.Column(db.String(120), unique=True, index=True, nullable=False)email = db.Column(db.String(120), unique=True, index=True, nullable=False)Defaults
You can set default values:
is_active = db.Column(db.Boolean, default=True, nullable=False)is_active = db.Column(db.Boolean, default=True, nullable=False)For timestamps, you typically use a callable (not a fixed time):
import datetime
created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow, nullable=False)import datetime
created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow, nullable=False)Foreign keys (preview)
Relationships depend on foreign keys:
user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)We’ll build relationships later in this phase.
If this helped you, consider buying me a coffee ☕
Buy me a coffeeWas this page helpful?
Let us know how we did
