Python SqlAlchemy 传递查询到视图序列化问题

1 投票
1 回答
749 浏览
提问于 2025-04-16 11:16

如何将sqlalchemy查询的结果传递给视图的最佳方法是什么?

我有一个用声明方式定义的表,比如:

class Greeting(Base):
  __tablename__ = 'greetings'

  id = Column(Integer, primary_key=True)
  author = Column(String)
  content = Column(Text)
  date = Column(DateTime)

  def __init__(self, author, content, date = datetime.datetime.now()):
    self.author = author
    self.content = content
    self.date = date

然后,我用 q = session.query(Greeting).order_by(Greeting.date) 运行一个查询,但当我尝试直接返回 q 时,出现了一些JSON序列化错误。从我理解的情况来看,这个问题是由于日期字段造成的。有简单的方法可以解决这个问题吗?

1 个回答

0

你可以看看这个链接:http://www.sqlalchemy.org/docs/core/serializer.html

这个内容讲的是在使用SQLAlchemy进行查询时,如何使用序列化和反序列化的对象,让数据处理更灵活。

你可以用任何SQLAlchemy的查询结构,不管是基于sqlalchemy.sql.*还是sqlalchemy.orm.*的都可以。这里提到的映射器、表、列、会话等在序列化的时候并不会被保存成固定的形式,而是在反序列化的时候重新和查询结构关联起来。

撰写回答