我正在使用:SQLAlchemy 0.7.9和Python 2.7.3,瓶0.11.4。我是python的業餘愛好者。SQLAlchemy聲明式:向列添加靜態文本屬性
我有一個類(具有很多列)從聲明鹼的是這樣的:
class Base(object):
@declared_attr
def __tablename__(cls):
return cls.__name__.lower()
id = Column(Integer, primary_key = True)
def to_dict(self):
serialized = dict((column_name, getattr(self, column_name))
for column_name in self.__table__.c.keys())
return serialized
Base = declarative_base(cls=Base)
class Case(Base):
version = Column(Integer)
title = Column(String(32))
plausible_dd = Column(Text)
frame = Column(Text)
primary_task = Column(Text)
secondary_task = Column(Text)
eval_objectives = Column(Text)
...
我目前使用一瓶這樣的「路線」傾倒了一排/類像這樣JSON:
@app.route('/<name>/:record')
def default(name, record, db):
myClass = getattr(sys.modules[__name__], name)
parms = db.query(myClass).filter(myClass.id == record)
result = json.dumps(([parm.to_dict() for parm in parms]))
return result
我的第一個問題是:我如何讓每個列都有一些靜態文本,我可以使用這些靜態文本作爲專用名稱,以便我可以遍歷列並獲取它們的值和專有名稱?例如:
class Case(Base):
version = Column(Integer)
version.pn = "Version Number"
我的第二個問題是:以下是否正在尋找我正在尋找的東西?我看過這個例子,但我不明白這個解釋。要創建
version = Column("Version Number", Integer)
很顯然,我不想要一個表列:從sqlalchemy.org
例子:
id = Column("some_table_id", Integer)
我的例子解釋。我只希望列在泛型意義上具有「屬性」。先謝謝你。
我剛纔意識到我可以有一個包含專有名稱的行。我仍然有興趣看到這個功能是否可以放入模型中。 – user3091850