Creating Models
Model Basics
Base Model Class
from sqlalchemy import Column, Integer, String, Float, DateTime, Text, Boolean
from core.model import Base
import time
class SensorReading(Base):
__tablename__ = "sensor_readings"
id = Column(Integer, primary_key=True, autoincrement=True)
sensor_id = Column(String(50), nullable=False, index=True)
sensor_type = Column(String(20), nullable=False)
value = Column(Float, nullable=False)
unit = Column(String(10))
timestamp = Column(Float, nullable=False, default=time.time)
def __repr__(self):
return f"<SensorReading(sensor_id='{self.sensor_id}', value={self.value})>"Model Directory Structure
Column Types
Common Column Types
String Lengths
Indexes and Constraints
Database Indexes
Unique Constraints
Check Constraints
Relationships
Foreign Keys
One-to-Many Relationships
Many-to-Many Relationships
Model Methods
Instance Methods
Class Methods
Model Examples
IoT Device Model
Alert Model
User Session Model
Model Registration
Importing Models
Auto-discovery (Optional)
Validation
SQLAlchemy Validators
Custom Validation Methods
Best Practices
Naming Conventions
Performance Tips
Organization Tips
Next Steps
Last updated