程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

SQLAlchemy 方法将 ORM 对象作为字典?

发布于2022-08-09 03:20     阅读(1006)     评论(0)     点赞(12)     收藏(5)


采取以下代码:

from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, Integer, String
engine = create_engine('postgresql://postgres:password@localhost:5432/db', echo=True, echo_pool='debug')
Base = declarative_base()

class Item(Base):
    __tablename__ = 'items'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    def __repr__(self):
       return "<Item(id=%s, name='%s')>" % (self.id, self.name)

item = Item(name="computer")

有没有办法获得Item所有字段的python dict?例如,我想返回以下内容:

item.to_dict()
{"id": None, "name": "computer"}

还是我必须编写自己的方法来做到这一点?


解决方案


这是一种方法:

class MyBase(Base):
    __abstract__ = True
    def to_dict(self):
        return {field.name:getattr(self, field.name) for field in self.__table__.c}

class Item(MyBase):
    # as before

item = Item(name="computer")
item.to_dict()
# {'id': None, 'name': 'computer'}

此外,许多这些可用性简化可以在:https ://github.com/absent1706/sqlalchemy-mixins 中找到。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1652063/474617b79d2da9269e34/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

12 0
收藏该文
已收藏

评论内容:(最多支持255个字符)