sqlalchemy.orm.mapped_column
是 SQLAlchemy ORM 中的一个函数,用于在 ORM 映射中定义一个列。SQLAlchemy 是一个流行的 Python SQL 工具包和对象关系映射器(ORM),它允许开发者使用 Python 类和对象来操作数据库。
mapped_column
函数提供了许多参数,用于定义列的各个方面,如数据类型、是否初始化、是否可比较、默认值、是否为主键等。以下是一些主要参数的简要说明:
__name_pos
和__type_pos
:用于指定列名和列类型的位置参数。init
:指定是否在对象初始化时包括此列。如果设置为False
,则不会在构造函数中设置此字段。repr
:是否将此列包含在对象的字符串表示中。default
和default_factory
:用于设置列的默认值。compare
:指定此列在比较操作中是否应该被考虑。nullable
:指定列是否可以为 NULL。primary_key
:指定此列是否为主键。autoincrement
:如果此列是整数类型,此参数控制它是否应该自动递增。doc
:列的文档字符串。key
:此列在映射属性字典中的键。index
:是否为此列创建索引。unique
:是否将此列设置为唯一。onupdate
:当行被更新时,此列的新值。server_default
和server_onupdate
:在数据库中设置列的默认值或在更新时使用的值。comment
:为列设置的数据库注释。
请注意,虽然 mapped_column
提供了许多参数来细粒度地控制列的行为,但在实际使用中,开发者通常会使用更简单的方式来定义列,比如直接在类定义中使用类型注解。此外,随着 SQLAlchemy 的版本更新,某些参数或行为可能会有所变化,因此建议查阅最新的官方文档以获取最准确的信息。
最后,MappedColumn
是返回的类型,它表示一个映射到数据库列的 ORM 属性。这个对象包含了定义列所需的所有信息,并在 ORM 映射过程中被使用。