用于存储标准枚举值的SqlAlchemy类型
SQLAlchemy-Enum34的Python项目详细描述
sqlalchemy-enum34
这个包提供了一个sqlalchemy类型来存储标准的值 enum.Enum(自Python 3.4以来成为标准库的一部分)。 它的内部表示相当于sqlalchemy的内置 sqlalchemy.types.Enum,但它的python表示不是 一个str但是enum.Enum
注意,这适用于Python 2.6和3.4,后者是 python,通过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(Shift.color == Color.navy).first() >>> shirt.color <Color.navy: 'navy'> >>> shirt.size <Size.large: 'large'>
由Hong Minhee在Spoqa编写,并在麻省理工学院许可下分发