跳转到主要内容

存储标准enum.Enum值的SQLAlchemy类型

项目描述

SQLAlchemy-Enum34

https://badge.fury.io/py/SQLAlchemy-Enum34.svg? https://travis-ci.org/spoqa/sqlalchemy-enum34.svg?branch=master https://codecov.io/github/spoqa/sqlalchemy-enum34/coverage.svg?branch=master

此包提供了一个SQLAlchemy类型来存储标准 enum.Enum 的值(从Python 3.4开始成为标准库的一部分)。其内部表示与SQLAlchemy的内置 sqlalchemy.types.Enum 相等,但其Python表示不是 str,而是 enum.Enum

请注意,此包在Python 2.6以及最新版本的Python 3.4上也能工作,通过 enum34 包。

以下示例展示了如何声明 enum 类型的列

import enum

from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy_enum34 import EnumType

Base = declarative_base()

class Color(enum.Enum):
    black = 'black'
    white = 'white'
    navy = 'navy'
    red = 'red'

class Size(enum.Enum):
    small = 'S'
    medium = 'M'
    large = 'L'
    xlarge = 'XL'

class Shirt(Base):
    id = Column(Integer, primary_key=True)
    color = Column(EnumType(Color), nullable=False)
    size = Column(EnumType(Size, name='shirt_size'), nullable=False)

以下REPL会话展示了这些列的工作方式

>>> shirt = session.query(Shirt).filter(Shirt.color == Color.navy).first()
>>> shirt.color
<Color.navy: 'navy'>
>>> shirt.size
<Size.large: 'large'>

Hong MinheeSpoqa 编写,并采用 MIT 许可证分发。

变更日志

2.0.0

发布于 2021 年 4 月 14 日。

  • 针对 SQLAlchemy 1.3+ 和现代 Python 版本的更新。[#6 由 Joongi Kim 提交]

1.0.1

发布于 2015 年 8 月 7 日。

  • 修复了 sqlalchemy_enum34.Enum 不允许为空值的问题。[#1 由 Andrés Moya 提交]

1.0.0

第一个版本。发布于 2015 年 7 月 30 日。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

SQLAlchemy-Enum34-2.0.0.tar.gz (3.7 kB 查看哈希值)

上传时间 源代码

构建分发

SQLAlchemy_Enum34-2.0.0-py2.py3-none-any.whl (4.3 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下提供支持