python–SQLAlchemy声明:向列添加静态文本属性

python–SQLAlchemy声明:向列添加静态文本属性,第1张

概述我正在使用:SQLAlchemy 0.7.9和Python 2.7.3 with Bottle 0.11.4.我是python的业余爱好者.我有一个类(有很多列)派生自声明式基类,如下所示:class Base(object): @declared_attr def __tablename__(cls): re

我正在使用:sqlAlchemy 0.7.9和Python 2.7.3 with Bottle 0.11.4.我是python的业余爱好者.

我有一个类(有很多列)派生自声明式基类,如下所示:

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 serializedBase = 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)     ...

我目前正在使用Bottle中的’route’来转储Json中的行/类,如下所示:

@app.route('/

我的第一个问题是:我怎样才能让每个列都有一些静态文本,我可以将其用作正确的名称,以便我可以迭代列并获取它们的值和专有名称?例如:

class Case(Base):     version    = Column(Integer)     version.pn = "Version Number" 

我的第二个问题是:以下是否符合我的要求?我已经看过这个例子,但我不明白这个解释.

sqlalchemy.org的示例:

      ID = Column("some_table_ID",Integer)

我对这个例子的解释:

      version   = Column("Version Number",Integer)

显然我不希望创建表列.我只是希望列具有一般意义上的“属性”.先感谢您.最佳答案可以使用info字典.在您的模型类中,像这样定义它:

class Case(Base):    version = Column(Integer,info={'description': 'Version Number'})

然后它可以作为表列属性访问:

desc = Case.__table__.c.version.info.get('description','

更新

这是迭代表中所有列并获取其名称,值和描述的一种方法.这个例子使用了dict理解,它可以从Python 2.7开始使用.

class Case(Base):    # Column deFinitions go here...    def as_dict(self):        return {c.name: (getattr(self,c.name),c.info.get('description'))                for c in self.__table__.c}
总结

以上是内存溢出为你收集整理的python – SQLAlchemy声明:向列添加静态文本属性全部内容,希望文章能够帮你解决python – SQLAlchemy声明:向列添加静态文本属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)