SQLAlchemy的类型定义语法

表名配置(核心魔法属性)

复制代码
__tablename__ = "favorite"
  • 双下划线开头 + 结尾:SQLAlchemy 固定魔法属性
  • 作用:指定数据库里的表名

表级配置(约束、索引)

复制代码
__table_args__ = ( ... )
  • 同样是双下划线
  • 用于给表添加:
    • 唯一约束
    • 索引
    • 存储引擎
    • 字符集
  • 必须是元组格式 ( , )

字段定义语法(最核心)

复制代码
字段名: Mapped[类型] = mapped_column(参数...)

Mapped[类型]Python 类型注解
mapped_column(参数):对该字段的属性设置

mapped_column () 通用常用属性
复制代码
mapped_column(
    # 1. 数据库字段类型
    Integer, String(32), Text, DateTime, Boolean, Float, Decimal

    # 2. 主键
    primary_key=True,  # 设为主键
    autoincrement=True,  # 自增(整数主键常用)

    # 3. 非空 / 允许为空
    nullable=True,  # 不允许为空(默认 True)

    # 4. 唯一
    unique=True,  # 字段值唯一(如手机号、用户名)

    # 5. 默认值
    default=datetime.utcnow,  # Python 层默认值
    server_default="CURRENT_TIMESTAMP",  # 数据库层默认

    # 6. 注释
    comment="字段说明",

    # 7. 索引
    index=True,  # 快速创建普通索引

    # 8. 只读 / 不更新
    insert_only=True,  # 只插入,不允许更新

    # 9. 隐藏字段(ORM 可用,查询默认不显示)
    deferred=True,
)
相关推荐
2501_921939261 小时前
MySQL(备份恢复、主从复制读写分离)
数据库·mysql
星纬智联技术2 小时前
给 Amp 配置自定义 API:CLIProxyAPI 接入教程
运维·服务器·数据库
浩~~2 小时前
极客大挑战2019-LoveSQL
数据库
码农阿豪2 小时前
Go 语言操作金仓数据库(上篇):环境搭建与连接管理
开发语言·数据库·golang
码农阿豪2 小时前
Go 语言操作金仓数据库(下篇):SQL 执行、类型映射与超时控制
数据库·sql·golang
IronMurphy2 小时前
Redis拷打第二讲
数据库·redis·缓存
星月昭铭2 小时前
5步在Trae中配置SQLcl MCP,让AI直接操作Oracle数据库
数据库·oracle·ai编程
phltxy2 小时前
Redis Set:原理、命令与实战场景详解
数据库·redis·缓存
他是龙5512 小时前
SQLi-Labs 通关笔记(Less-38 ~ Less-53):堆叠注入与 ORDER BY 注入
数据库·笔记·less