我离在 SQLAlchemy 中定义模型还有多远:
class Person(Base):
pass
然后让它动态获取字段名称?无论如何要获得命名约定来控制表之间的关系?我想我正在寻找类似于 RoR 的 ActiveRecord 但在 Python 中的东西。
不确定这是否重要,但我会尝试在 IronPython 而不是 cPython 下使用它。
最佳答案
自动取字段名很简单:
from sqlalchemy import Table
from sqlalchemy.orm import MetaData, mapper
metadata = MetaData()
metadata.bind = engine
person_table = Table(metadata, "tablename", autoload=True)
class Person(object):
pass
mapper(Person, person_table)
使用这种方法,您必须在调用 mapper()
时定义关系,因此不会自动发现关系。
要自动将类映射到具有相同名称的表,您可以这样做:
def map_class(class_):
table = Table(metadata, class_.__name__, autoload=True)
mapper(class_, table)
map_class(Person)
map_class(Order)
Elixir 可能会做你想做的一切。
关于python - SQLAlchemy - 模型 - 使用动态字段 - ActiveRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1165002/