如何在SQLAlchemy中为数据库的查找表创建枚举?
我在数据库里有一个查找表,大概长这样:
-----------------
| Code | Id |
-----------------
| Good | 1 |
| Bad | 2 |
-----------------
我想用Python创建一个对象,长得像这样:
>>> Codes.Good
1
>>> Codes.Bad
2
我之前是用一种比较“黑科技”的方法,把type
函数、原始SQL查询和Session.execute
拼凑在一起。比如说:
>>> results = Session.execute("select code, id from codes")
>>> d = {}
>>> [d[result.code] = result.id for result in results]
>>> Codes = type("Codes", (object,), d)
在SQLAlchemy里,有没有更好的内置方法来实现这个?
1 个回答
4
SqlAlchemy的创始人最近发了一篇文章,讲的是如何做到这一点: