用于存储标准枚举值的SqlAlchemy类型

SQLAlchemy-Enum34的Python项目详细描述


sqlalchemy-enum34

https://badge.fury.io/py/SQLAlchemy-Enum34.svg?https://travis-ci.org/spoqa/sqlalchemy-enum34.svg?branch=masterhttps://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和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 MinheeSpoqa编写,并在麻省理工学院许可下分发

变更日志

1.0.1

2015年8月7日发布。

  • 修正了sqlalchemy_enum34.Enum不允许为空。 安德烈斯莫亚的[#1]

1.0.0

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Portlet间通信页面提交   Java通过命令行参数循环查看用户输入的内容?   java在程序运行时保持JPanel中的计时器处于活动状态   适用于通知系统的java模型   java CodeAbbey挑战14个数据输入问题?   sql server使用windows身份验证连接到java中的远程MS sql server   java Hibernate@OnetoMany与集合上的Where子句   如何在java中比较继承中的两个值?   java在客户机-服务器程序中从文件读取特定字节   将null值赋给args时,java RawQuery不起作用   java:类概要文件是公共的,应该在名为Profile的文件中声明。非结构化数据模型和pojo的java错误   java意外JDWP错误21   多线程Java客户端服务器时钟   c#设置按钮事件的最快方式   java保留MQTT主题在恢复活动时订阅   java H2 1.4.199 database getGeneratedKeys()返回由另一个insert事务生成的键,或者将来的对象被混淆   java以编程方式调用单击JLabel   用java解析非常大的XML文档(还有更多)