gpt4 book ai didi

python - 使用 sqlalchemy SELECT UNCOMPRESS(text) FROM

转载 作者:行者123 更新时间:2023-12-01 05:58:46 26 4
gpt4 key购买 nike

我存储了 MySQL Compress 函数,用于将压缩的 blob 数据插入数据库。

在上一个问题中,我被指示使用

func.compress

( mysql Compress() with sqlalchemy )

现在的问题是我还想从数据库中读取数据。在 mysql 中我会这样做

SELECT UNCOMPRESS(text) FROM ...

也许我应该在类中使用 setter/getter 。我尝试做类似的事情:

get_html(self):
return func.uncompress(self.text)

但这不起作用。它返回 sqlalchemy.sql.expression.Function 而不是字符串。

而且我找不到哪些函数包含sqlalchemy的func。

关于如何在对象中编写 getter 以便取回未压缩数据的任何想法。

最佳答案

func实际上是一个非常奇特的工厂对象,用于在查询时呈现给 SQL 的特殊函数对象 - 您无法在 Python 中评估它们,因为 Python 不知道您的数据库如何实现 compress() 。这就是它不起作用的原因。

SQLAlchemy 可让您映射 SQL expressions to mapped class attributes 。如果您使用声明性语法,请像这样扩展您的类(它未经测试,但我相信这是正确的方法):

from sqlalchemy.orm import column_property

class Demo(...):
data_uncompressed = column_property(func.uncompress(data))

现在,每当 SQLAlchemy 从数据库加载实例时,SELECT 查询将包含 SELECT ..., UNCOMPRESS(demotable.data), ... FROM demotable .

由 Giorgos Komninos 编辑:我用的是

http://docs.sqlalchemy.org/en/rel_0_7/orm/mapper_config.html#using-a-plain-descriptor

并且成功了。

关于python - 使用 sqlalchemy SELECT UNCOMPRESS(text) FROM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com